[asan] add missing asan instrumentation in generated global init functions

llvm-svn: 159191
This commit is contained in:
Kostya Serebryany 2012-06-26 08:56:33 +00:00
parent 26d4cc1b96
commit bf84b8fa3b
2 changed files with 9 additions and 0 deletions

View File

@ -228,6 +228,9 @@ CreateGlobalInitOrDestructFunction(CodeGenModule &CGM,
if (!CGM.getLangOpts().Exceptions)
Fn->setDoesNotThrow();
if (CGM.getLangOpts().AddressSanitizer)
Fn->addFnAttr(llvm::Attribute::AddressSafety);
return Fn;
}

View File

@ -33,3 +33,9 @@ int TemplateAddressSafetyOk() { return i; }
int force_instance = TemplateAddressSafetyOk<42>()
+ TemplateNoAddressSafety<42>();
// Check that __cxx_global_var_init* get the address_safety attribute.
int global1 = 0;
int global2 = *(int*)((char*)&global1+1);
// CHECK-NOT: @__cxx_global_var_init{{.*}}address_safety
// ASAN: @__cxx_global_var_init{{.*}}address_safety