forked from OSchip/llvm-project
[ASan] Do not instrument globals from the llvm.metadata section.
Fixes https://code.google.com/p/address-sanitizer/issues/detail?id=279. llvm-svn: 204331
This commit is contained in:
parent
cb3f812b6b
commit
04969e8b31
|
@ -927,6 +927,8 @@ bool AddressSanitizerModule::ShouldInstrumentGlobal(GlobalVariable *G) {
|
|||
DEBUG(dbgs() << "Ignoring a cstring literal: " << *G << "\n");
|
||||
return false;
|
||||
}
|
||||
// Globals from llvm.metadata aren't emitted, do not instrument them.
|
||||
if (Section == "llvm.metadata") return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
; This test checks that we are not instrumenting globals in llvm.metadata.
|
||||
; RUN: opt < %s -asan -asan-module -S | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
@.str_noinst = private unnamed_addr constant [4 x i8] c"aaa\00", section "llvm.metadata"
|
||||
@.str_inst = private unnamed_addr constant [4 x i8] c"aaa\00",
|
||||
|
||||
; CHECK-NOT: {{asan_gen.*str_noinst}}
|
||||
; CHECK: {{asan_gen.*str_inst}}
|
||||
; CHECK: @asan.module_ctor
|
Loading…
Reference in New Issue