Author: emaste Date: Wed May 7 07:49:30 2014 New Revision: 208203 URL: http://llvm.org/viewvc/llvm-project?rev=208203&view=rev Log: DebugInfo: Use enum instead of unsigned
This makes debuging DebugInfo generation with LLDB a little more pleasant. Differential Revision: http://reviews.llvm.org/D3626 Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp cfe/trunk/lib/CodeGen/CGDebugInfo.h Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=208203&r1=208202&r2=208203&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Wed May 7 07:49:30 2014 @@ -344,7 +344,7 @@ void CGDebugInfo::CreateCompileUnit() { std::string SplitDwarfFile = CGM.getCodeGenOpts().SplitDwarfFile; StringRef SplitDwarfFilename = internString(SplitDwarfFile); - unsigned LangTag; + llvm::dwarf::SourceLanguage LangTag; const LangOptions &LO = CGM.getLangOpts(); if (LO.CPlusPlus) { if (LO.ObjC1) @@ -379,7 +379,7 @@ void CGDebugInfo::CreateCompileUnit() { /// CreateType - Get the Basic type from the cache or create a new /// one if necessary. llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) { - unsigned Encoding = 0; + llvm::dwarf::TypeKind Encoding; StringRef BTName; switch (BT->getKind()) { #define BUILTIN_TYPE(Id, SingletonId) @@ -503,7 +503,7 @@ llvm::DIType CGDebugInfo::CreateType(con llvm::DIType CGDebugInfo::CreateType(const ComplexType *Ty) { // Bit size, align and offset of the type. - unsigned Encoding = llvm::dwarf::DW_ATE_complex_float; + llvm::dwarf::TypeKind Encoding = llvm::dwarf::DW_ATE_complex_float; if (Ty->isComplexIntegerType()) Encoding = llvm::dwarf::DW_ATE_lo_user; @@ -528,7 +528,7 @@ llvm::DIType CGDebugInfo::CreateQualifie // We will create one Derived type for one qualifier and recurse to handle any // additional ones. - unsigned Tag; + llvm::dwarf::Tag Tag; if (Qc.hasConst()) { Tag = llvm::dwarf::DW_TAG_const_type; Qc.removeConst(); @@ -608,7 +608,7 @@ CGDebugInfo::getOrCreateRecordFwdDecl(co unsigned Line = getLineNumber(RD->getLocation()); StringRef RDName = getClassName(RD); - unsigned Tag = 0; + llvm::dwarf::Tag Tag; if (RD->isStruct() || RD->isInterface()) Tag = llvm::dwarf::DW_TAG_structure_type; else if (RD->isUnion()) @@ -626,7 +626,7 @@ CGDebugInfo::getOrCreateRecordFwdDecl(co return RetTy; } -llvm::DIType CGDebugInfo::CreatePointerLikeType(unsigned Tag, +llvm::DIType CGDebugInfo::CreatePointerLikeType(llvm::dwarf::Tag Tag, const Type *Ty, QualType PointeeTy, llvm::DIFile Unit) { @@ -1632,7 +1632,7 @@ llvm::DIType CGDebugInfo::CreateType(con // Get overall information about the record type for the debug info. llvm::DIFile DefUnit = getOrCreateFile(ID->getLocation()); unsigned Line = getLineNumber(ID->getLocation()); - unsigned RuntimeLang = TheCU.getLanguage(); + llvm::dwarf::SourceLanguage RuntimeLang = TheCU.getLanguage(); // If this is just a forward declaration return a special forward-declaration // debug type since we won't be able to lay out the entire type. @@ -2706,7 +2706,7 @@ llvm::DIType CGDebugInfo::EmitTypeForVar } /// EmitDeclare - Emit local variable declaration debug info. -void CGDebugInfo::EmitDeclare(const VarDecl *VD, unsigned Tag, +void CGDebugInfo::EmitDeclare(const VarDecl *VD, llvm::dwarf::LLVMConstants Tag, llvm::Value *Storage, unsigned ArgNo, CGBuilderTy &Builder) { assert(DebugKind >= CodeGenOptions::LimitedDebugInfo); Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=208203&r1=208202&r2=208203&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Wed May 7 07:49:30 2014 @@ -147,7 +147,7 @@ class CGDebugInfo { llvm::DIType getOrCreateVTablePtrType(llvm::DIFile F); llvm::DINameSpace getOrCreateNameSpace(const NamespaceDecl *N); llvm::DIType getOrCreateTypeDeclaration(QualType PointeeTy, llvm::DIFile F); - llvm::DIType CreatePointerLikeType(unsigned Tag, + llvm::DIType CreatePointerLikeType(llvm::dwarf::Tag Tag, const Type *Ty, QualType PointeeTy, llvm::DIFile F); @@ -305,8 +305,10 @@ public: private: /// EmitDeclare - Emit call to llvm.dbg.declare for a variable declaration. - void EmitDeclare(const VarDecl *decl, unsigned Tag, llvm::Value *AI, - unsigned ArgNo, CGBuilderTy &Builder); + /// Tag accepts custom types DW_TAG_arg_variable and DW_TAG_auto_variable, + /// otherwise would be of type llvm::dwarf::Tag. + void EmitDeclare(const VarDecl *decl, llvm::dwarf::LLVMConstants Tag, + llvm::Value *AI, unsigned ArgNo, CGBuilderTy &Builder); // EmitTypeForVarWithBlocksAttr - Build up structure info for the byref. // See BuildByRefType. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
