Change DIBuilder::createImportedDeclaration from taking a DIScope to a DIDescriptor.
Imported declarations can be DIGlobalVariables which aren't a DIScope. Today clang (unknowingly I believe) shoehorns these into a DIScope and it all works just because we never access the fields. llvm-svn: 221466
This commit is contained in:
@@ -190,10 +190,13 @@ DIImportedEntity DIBuilder::createImportedModule(DIScope Context,
|
||||
}
|
||||
|
||||
DIImportedEntity DIBuilder::createImportedDeclaration(DIScope Context,
|
||||
DIScope Decl,
|
||||
DIDescriptor Decl,
|
||||
unsigned Line, StringRef Name) {
|
||||
// Make sure to use the unique identifier based metadata reference for
|
||||
// types that have one.
|
||||
Value *V = Decl.isType() ? DIType(Decl).getRef() : Decl;
|
||||
return ::createImportedModule(VMContext, dwarf::DW_TAG_imported_declaration,
|
||||
Context, Decl.getRef(), Line, Name,
|
||||
Context, V, Line, Name,
|
||||
AllImportedModules);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user