Hrm. Testcase? Where were you seeing it? -eric
On Thu Nov 06 2014 at 1:30:34 PM Frederic Riss <[email protected]> wrote: > Author: friss > Date: Thu Nov 6 15:12:06 2014 > New Revision: 221481 > > URL: http://llvm.org/viewvc/llvm-project?rev=221481&view=rev > Log: > Return a DIDescriptor from CGDebugInfo::getDeclarationOrDefinition... > > ... instead of a DIScope that might wrap something that's not actually > a DIScope (eg. a DIGlobalVariable); > > 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=221481&r1=221480&r2=221481&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Nov 6 15:12:06 2014 > @@ -2307,7 +2307,7 @@ llvm::DIType CGDebugInfo::CreateMemberTy > return Ty; > } > > -llvm::DIScope CGDebugInfo::getDeclarationOrDefinition(const Decl *D) { > +llvm::DIDescriptor CGDebugInfo::getDeclarationOrDefinition(const Decl > *D) { > // We only need a declaration (not a definition) of the type - so use > whatever > // we would otherwise do to get a type for a pointee. (forward > declarations in > // limited debug info, full definitions (if the type definition is > available) > @@ -2327,7 +2327,7 @@ llvm::DIScope CGDebugInfo::getDeclaratio > if (I == DeclCache.end()) > return llvm::DIScope(); > llvm::Value *V = I->second; > - return llvm::DIScope(dyn_cast_or_null<llvm::MDNode>(V)); > + return llvm::DIDescriptor(dyn_cast_or_null<llvm::MDNode>(V)); > } > > /// getFunctionDeclaration - Return debug info descriptor to describe > method > @@ -3239,7 +3239,7 @@ void CGDebugInfo::EmitUsingDecl(const Us > // Emitting one decl is sufficient - debuggers can detect that this is > an > // overloaded name & provide lookup for all the overloads. > const UsingShadowDecl &USD = **UD.shadow_begin(); > - if (llvm::DIScope Target = > + if (llvm::DIDescriptor Target = > getDeclarationOrDefinition(USD.getUnderlyingDecl())) > DBuilder.createImportedDeclaration( > getCurrentContextDescriptor(cast<Decl>(USD.getDeclContext())), > Target, > > Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ > CGDebugInfo.h?rev=221481&r1=221480&r2=221481&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original) > +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Thu Nov 6 15:12:06 2014 > @@ -363,9 +363,9 @@ private: > llvm::DIType CreateMemberType(llvm::DIFile Unit, QualType FType, > StringRef Name, uint64_t *Offset); > > - /// \brief Retrieve the DIScope, if any, for the canonical form of this > + /// \brief Retrieve the DIDescriptor, if any, for the canonical form of > this > /// declaration. > - llvm::DIScope getDeclarationOrDefinition(const Decl *D); > + llvm::DIDescriptor getDeclarationOrDefinition(const Decl *D); > > /// getFunctionDeclaration - Return debug info descriptor to describe > method > /// declaration for the given method definition. > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
