/// Node - MDNode for the compile unit.
const MDNode *Node;
- /// Die - Compile unit debug information entry.
+ /// CUDie - Compile unit debug information entry.
///
const OwningPtr<DIE> CUDie;
/// constructVariableDIE - Construct a DIE for the given DbgVariable.
DIE *constructVariableDIE(DbgVariable *DV, bool isScopeAbstract);
+ /// Create a DIE with the given Tag, add the DIE to its parent, and
+ /// call insertDIE if MD is not null.
+ DIE *createAndAddDIE(unsigned Tag, DIE &Parent, const MDNode *MD = NULL);
+
private:
/// constructTypeDIE - Construct basic type die from DIBasicType.
void constructTypeDIE(DIE &Buffer, DIBasicType BTy);
void constructArrayTypeDIE(DIE &Buffer, DICompositeType *CTy);
/// constructEnumTypeDIE - Construct enum type DIE from DIEnumerator.
- DIE *constructEnumTypeDIE(DIE &Buffer, DIEnumerator ETy);
+ void constructEnumTypeDIE(DIE &Buffer, DIEnumerator ETy);
- /// createMemberDIE - Create new member DIE.
- DIE *createMemberDIE(DIE &Buffer, DIDerivedType DT);
+ /// constructMemberDIE - Construct member DIE from DIDerivedType.
+ void constructMemberDIE(DIE &Buffer, DIDerivedType DT);
- /// getOrCreateTemplateTypeParameterDIE - Find existing DIE or create new DIE
- /// for the given DITemplateTypeParameter.
- DIE *getOrCreateTemplateTypeParameterDIE(DIE &Buffer,
- DITemplateTypeParameter TP);
+ /// constructTemplateTypeParameterDIE - Construct new DIE for the given
+ /// DITemplateTypeParameter.
+ void constructTemplateTypeParameterDIE(DIE &Buffer,
+ DITemplateTypeParameter TP);
- /// getOrCreateTemplateValueParameterDIE - Find existing DIE or create
- /// new DIE for the given DITemplateValueParameter.
- DIE *getOrCreateTemplateValueParameterDIE(DIE &Buffer,
- DITemplateValueParameter TVP);
+ /// constructTemplateValueParameterDIE - Construct new DIE for the given
+ /// DITemplateValueParameter.
+ void constructTemplateValueParameterDIE(DIE &Buffer,
+ DITemplateValueParameter TVP);
/// getOrCreateStaticMemberDIE - Create new static data member DIE.
DIE *getOrCreateStaticMemberDIE(DIDerivedType DT);