Attached is a patch that makes sure that annotate attributes are also emitted
for function declarations. It simply calls CodeGenModule::AddGlobalAnnotations
in CodeGenModule::SetFunctionAttributes instead of in
CodeGenModule::EmitGlobalFunctionDefinition.
See http://lists.cs.uiuc.edu/pipermail/cfe-users/2013-January/000046.html for
a yet unanswered question I asked about this.
Kind regards,
Job
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index da419dd..e97987b 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -692,6 +692,8 @@ void CodeGenModule::SetFunctionAttributes(GlobalDecl GD,
if (const SectionAttr *SA = FD->getAttr<SectionAttr>())
F->setSection(SA->getName());
+ if (FD->hasAttr<AnnotateAttr>())
+ AddGlobalAnnotations(FD, F);
}
void CodeGenModule::AddUsedGlobal(llvm::GlobalValue *GV) {
@@ -2053,8 +2055,6 @@ void CodeGenModule::EmitGlobalFunctionDefinition(GlobalDecl GD) {
AddGlobalCtor(Fn, CA->getPriority());
if (const DestructorAttr *DA = D->getAttr<DestructorAttr>())
AddGlobalDtor(Fn, DA->getPriority());
- if (D->hasAttr<AnnotateAttr>())
- AddGlobalAnnotations(D, Fn);
}
void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) {_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits