[llvm] r218041 - Always emit DW_AT_declaration attribute when the variable isn't a definition.
Frederic Riss
friss at apple.com
Thu Sep 18 02:38:23 PDT 2014
Author: friss
Date: Thu Sep 18 04:38:23 2014
New Revision: 218041
URL: http://llvm.org/viewvc/llvm-project?rev=218041&view=rev
Log:
Always emit DW_AT_declaration attribute when the variable isn't a definition.
Summary:
This doesn't show up today as we don't emit decalration only variables. This
will be tested when the followup patches implementing import of forward
declared entities lands in clang.
Reviewers: echristo, dblaikie, aprantl
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5382
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp?rev=218041&r1=218040&r2=218041&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp Thu Sep 18 04:38:23 2014
@@ -1670,6 +1670,9 @@ void DwarfCompileUnit::createGlobalVaria
DD->addArangeLabel(SymbolCU(this, Sym));
addOpAddress(*Loc, Sym);
}
+ // A static member's declaration is already flagged as such.
+ if (!SDMDecl.Verify() && !GV.isDefinition())
+ addFlag(*VariableDIE, dwarf::DW_AT_declaration);
// Do not create specification DIE if context is either compile unit
// or a subprogram.
if (GVContext && GV.isDefinition() && !GVContext.isCompileUnit() &&
@@ -1678,9 +1681,6 @@ void DwarfCompileUnit::createGlobalVaria
VariableSpecDIE = &createAndAddDIE(dwarf::DW_TAG_variable, UnitDie);
addDIEEntry(*VariableSpecDIE, dwarf::DW_AT_specification, *VariableDIE);
addBlock(*VariableSpecDIE, dwarf::DW_AT_location, Loc);
- // A static member's declaration is already flagged as such.
- if (!SDMDecl.Verify())
- addFlag(*VariableDIE, dwarf::DW_AT_declaration);
} else {
addBlock(*VariableDIE, dwarf::DW_AT_location, Loc);
}
More information about the llvm-commits
mailing list