Skip to content

Commit 6a125c7

Browse files
authored
[asan] Better ___asan_gen_ names (#104728)
Use different suffixes for each of 3 types of objects using `___asan_gen_`.
1 parent 8a677c1 commit 6a125c7

File tree

11 files changed

+41
-37
lines changed

11 files changed

+41
-37
lines changed

llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,10 @@ static uint64_t GetCtorAndDtorPriority(Triple &TargetTriple) {
642642
}
643643
}
644644

645+
static Twine genName(StringRef suffix) {
646+
return Twine(kAsanGenPrefix) + suffix;
647+
}
648+
645649
namespace {
646650
/// Helper RAII class to post-process inserted asan runtime calls during a
647651
/// pass on a single Function. Upon end of scope, detects and applies the
@@ -2243,7 +2247,7 @@ void ModuleAddressSanitizer::SetComdatForGlobalMetadata(
22432247
// If G is unnamed, it must be internal. Give it an artificial name
22442248
// so we can put it in a comdat.
22452249
assert(G->hasLocalLinkage());
2246-
G->setName(Twine(kAsanGenPrefix) + "_anon_global");
2250+
G->setName(genName("anon_global"));
22472251
}
22482252

22492253
if (!InternalSuffix.empty() && G->hasLocalLinkage()) {
@@ -2538,10 +2542,10 @@ void ModuleAddressSanitizer::instrumentGlobals(IRBuilder<> &IRB,
25382542
// We shouldn't merge same module names, as this string serves as unique
25392543
// module ID in runtime.
25402544
GlobalVariable *ModuleName =
2541-
n != 0
2542-
? createPrivateGlobalForString(M, M.getModuleIdentifier(),
2543-
/*AllowMerging*/ false, kAsanGenPrefix)
2544-
: nullptr;
2545+
n != 0 ? createPrivateGlobalForString(M, M.getModuleIdentifier(),
2546+
/*AllowMerging*/ false,
2547+
genName("module"))
2548+
: nullptr;
25452549

25462550
for (size_t i = 0; i < n; i++) {
25472551
GlobalVariable *G = GlobalsToChange[i];
@@ -2556,7 +2560,7 @@ void ModuleAddressSanitizer::instrumentGlobals(IRBuilder<> &IRB,
25562560
std::string NameForGlobal = G->getName().str();
25572561
GlobalVariable *Name =
25582562
createPrivateGlobalForString(M, llvm::demangle(NameForGlobal),
2559-
/*AllowMerging*/ true, kAsanGenPrefix);
2563+
/*AllowMerging*/ true, genName("global"));
25602564

25612565
Type *Ty = G->getValueType();
25622566
const uint64_t SizeInBytes = DL.getTypeAllocSize(Ty);
@@ -3583,7 +3587,7 @@ void FunctionStackPoisoner::processStaticAllocas() {
35833587
IntptrPtrTy);
35843588
GlobalVariable *StackDescriptionGlobal =
35853589
createPrivateGlobalForString(*F.getParent(), DescriptionString,
3586-
/*AllowMerging*/ true, kAsanGenPrefix);
3590+
/*AllowMerging*/ true, genName("stack"));
35873591
Value *Description = IRB.CreatePointerCast(StackDescriptionGlobal, IntptrTy);
35883592
IRB.CreateStore(Description, BasePlus1);
35893593
// Write the PC to redzone[2].

llvm/test/Instrumentation/AddressSanitizer/asan-funclet.ll

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
6262
; CHECK-INLINE-NEXT: store i64 1102416563, ptr [[TMP23]], align 8
6363
; CHECK-INLINE-NEXT: [[TMP24:%.*]] = add i64 [[TMP12]], 8
6464
; CHECK-INLINE-NEXT: [[TMP25:%.*]] = inttoptr i64 [[TMP24]] to ptr
65-
; CHECK-INLINE-NEXT: store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr [[TMP25]], align 8
65+
; CHECK-INLINE-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack to i64), ptr [[TMP25]], align 8
6666
; CHECK-INLINE-NEXT: [[TMP26:%.*]] = add i64 [[TMP12]], 16
6767
; CHECK-INLINE-NEXT: [[TMP27:%.*]] = inttoptr i64 [[TMP26]] to ptr
6868
; CHECK-INLINE-NEXT: store i64 ptrtoint (ptr @FuncletPersonality to i64), ptr [[TMP27]], align 8
@@ -95,7 +95,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
9595
; CHECK-INLINE-NEXT: [[TMP42:%.*]] = inttoptr i64 [[TMP41]] to ptr
9696
; CHECK-INLINE-NEXT: [[TMP43:%.*]] = load i8, ptr [[TMP42]], align 1
9797
; CHECK-INLINE-NEXT: [[TMP44:%.*]] = icmp ne i8 [[TMP43]], 0
98-
; CHECK-INLINE-NEXT: br i1 [[TMP44]], label [[TMP45:%.*]], label [[TMP50:%.*]], !prof [[PROF0:![0-9]+]]
98+
; CHECK-INLINE-NEXT: br i1 [[TMP44]], label [[TMP45:%.*]], label [[TMP50:%.*]], !prof [[PROF1:![0-9]+]]
9999
; CHECK-INLINE: 45:
100100
; CHECK-INLINE-NEXT: [[TMP46:%.*]] = and i64 [[TMP21]], 7
101101
; CHECK-INLINE-NEXT: [[TMP47:%.*]] = trunc i64 [[TMP46]] to i8
@@ -153,7 +153,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
153153
; CHECK-INLINE-NEXT: [[TMP82:%.*]] = inttoptr i64 [[TMP81]] to ptr
154154
; CHECK-INLINE-NEXT: [[TMP83:%.*]] = load i8, ptr [[TMP82]], align 1
155155
; CHECK-INLINE-NEXT: [[TMP84:%.*]] = icmp ne i8 [[TMP83]], 0
156-
; CHECK-INLINE-NEXT: br i1 [[TMP84]], label [[TMP85:%.*]], label [[TMP90:%.*]], !prof [[PROF0]]
156+
; CHECK-INLINE-NEXT: br i1 [[TMP84]], label [[TMP85:%.*]], label [[TMP90:%.*]], !prof [[PROF1]]
157157
; CHECK-INLINE: 85:
158158
; CHECK-INLINE-NEXT: [[TMP86:%.*]] = and i64 [[TMP77]], 7
159159
; CHECK-INLINE-NEXT: [[TMP87:%.*]] = trunc i64 [[TMP86]] to i8
@@ -193,7 +193,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
193193
; CHECK-INLINE-NEXT: [[TMP101:%.*]] = inttoptr i64 [[TMP100]] to ptr
194194
; CHECK-INLINE-NEXT: [[TMP102:%.*]] = load i8, ptr [[TMP101]], align 1
195195
; CHECK-INLINE-NEXT: [[TMP103:%.*]] = icmp ne i8 [[TMP102]], 0
196-
; CHECK-INLINE-NEXT: br i1 [[TMP103]], label [[TMP104:%.*]], label [[TMP109:%.*]], !prof [[PROF0]]
196+
; CHECK-INLINE-NEXT: br i1 [[TMP103]], label [[TMP104:%.*]], label [[TMP109:%.*]], !prof [[PROF1]]
197197
; CHECK-INLINE: 104:
198198
; CHECK-INLINE-NEXT: [[TMP105:%.*]] = and i64 [[TMP54]], 7
199199
; CHECK-INLINE-NEXT: [[TMP106:%.*]] = trunc i64 [[TMP105]] to i8
@@ -221,7 +221,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
221221
; CHECK-INLINE-NEXT: [[TMP119:%.*]] = inttoptr i64 [[TMP118]] to ptr
222222
; CHECK-INLINE-NEXT: [[TMP120:%.*]] = load i8, ptr [[TMP119]], align 1
223223
; CHECK-INLINE-NEXT: [[TMP121:%.*]] = icmp ne i8 [[TMP120]], 0
224-
; CHECK-INLINE-NEXT: br i1 [[TMP121]], label [[TMP122:%.*]], label [[TMP127:%.*]], !prof [[PROF0]]
224+
; CHECK-INLINE-NEXT: br i1 [[TMP121]], label [[TMP122:%.*]], label [[TMP127:%.*]], !prof [[PROF1]]
225225
; CHECK-INLINE: 122:
226226
; CHECK-INLINE-NEXT: [[TMP123:%.*]] = and i64 [[TMP116]], 7
227227
; CHECK-INLINE-NEXT: [[TMP124:%.*]] = trunc i64 [[TMP123]] to i8
@@ -236,7 +236,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
236236
; CHECK-INLINE-NEXT: [[TMP130:%.*]] = inttoptr i64 [[TMP129]] to ptr
237237
; CHECK-INLINE-NEXT: [[TMP131:%.*]] = load i8, ptr [[TMP130]], align 1
238238
; CHECK-INLINE-NEXT: [[TMP132:%.*]] = icmp ne i8 [[TMP131]], 0
239-
; CHECK-INLINE-NEXT: br i1 [[TMP132]], label [[TMP133:%.*]], label [[EHEXIT:%.*]], !prof [[PROF0]]
239+
; CHECK-INLINE-NEXT: br i1 [[TMP132]], label [[TMP133:%.*]], label [[EHEXIT:%.*]], !prof [[PROF1]]
240240
; CHECK-INLINE: 133:
241241
; CHECK-INLINE-NEXT: [[TMP134:%.*]] = and i64 [[TMP114]], 7
242242
; CHECK-INLINE-NEXT: [[TMP135:%.*]] = trunc i64 [[TMP134]] to i8
@@ -308,7 +308,7 @@ define void @FuncletPersonality(ptr %ptrParam) sanitize_address personality ptr
308308
; CHECK-OUTLINE-NEXT: store i64 1102416563, ptr [[TMP27]], align 8
309309
; CHECK-OUTLINE-NEXT: [[TMP28:%.*]] = add i64 [[TMP12]], 8
310310
; CHECK-OUTLINE-NEXT: [[TMP29:%.*]] = inttoptr i64 [[TMP28]] to ptr
311-
; CHECK-OUTLINE-NEXT: store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr [[TMP29]], align 8
311+
; CHECK-OUTLINE-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack to i64), ptr [[TMP29]], align 8
312312
; CHECK-OUTLINE-NEXT: [[TMP30:%.*]] = add i64 [[TMP12]], 16
313313
; CHECK-OUTLINE-NEXT: [[TMP31:%.*]] = inttoptr i64 [[TMP30]] to ptr
314314
; CHECK-OUTLINE-NEXT: store i64 ptrtoint (ptr @FuncletPersonality to i64), ptr [[TMP31]], align 8
@@ -524,7 +524,7 @@ define void @OtherPersonality(ptr %ptrParam) sanitize_address personality ptr @d
524524
; CHECK-NEXT: store i64 1102416563, ptr [[TMP14]], align 8
525525
; CHECK-NEXT: [[TMP15:%.*]] = add i64 [[TMP11]], 8
526526
; CHECK-NEXT: [[TMP16:%.*]] = inttoptr i64 [[TMP15]] to ptr
527-
; CHECK-NEXT: store i64 ptrtoint (ptr @___asan_gen_.1 to i64), ptr [[TMP16]], align 8
527+
; CHECK-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack.1 to i64), ptr [[TMP16]], align 8
528528
; CHECK-NEXT: [[TMP17:%.*]] = add i64 [[TMP11]], 16
529529
; CHECK-NEXT: [[TMP18:%.*]] = inttoptr i64 [[TMP17]] to ptr
530530
; CHECK-NEXT: store i64 ptrtoint (ptr @OtherPersonality to i64), ptr [[TMP18]], align 8
@@ -580,5 +580,5 @@ ehcleanup: ; preds = %entry
580580
cleanupret from %0 unwind to caller
581581
}
582582
;.
583-
; CHECK-INLINE: [[PROF0]] = !{!"branch_weights", i32 1, i32 1048575}
583+
; CHECK-INLINE: [[PROF1]] = !{!"branch_weights", i32 1, i32 1048575}
584584
;.

llvm/test/Instrumentation/AddressSanitizer/fake-stack.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ define void @Simple() uwtable sanitize_address {
2727
; NEVER-NEXT: store i64 1102416563, ptr [[TMP3]], align 8
2828
; NEVER-NEXT: [[TMP4:%.*]] = add i64 [[TMP0]], 8
2929
; NEVER-NEXT: [[TMP5:%.*]] = inttoptr i64 [[TMP4]] to ptr
30-
; NEVER-NEXT: store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr [[TMP5]], align 8
30+
; NEVER-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack to i64), ptr [[TMP5]], align 8
3131
; NEVER-NEXT: [[TMP6:%.*]] = add i64 [[TMP0]], 16
3232
; NEVER-NEXT: [[TMP7:%.*]] = inttoptr i64 [[TMP6]] to ptr
3333
; NEVER-NEXT: store i64 ptrtoint (ptr @Simple to i64), ptr [[TMP7]], align 8
@@ -69,7 +69,7 @@ define void @Simple() uwtable sanitize_address {
6969
; RUNTIME-NEXT: store i64 1102416563, ptr [[TMP13]], align 8
7070
; RUNTIME-NEXT: [[TMP14:%.*]] = add i64 [[TMP10]], 8
7171
; RUNTIME-NEXT: [[TMP15:%.*]] = inttoptr i64 [[TMP14]] to ptr
72-
; RUNTIME-NEXT: store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr [[TMP15]], align 8
72+
; RUNTIME-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack to i64), ptr [[TMP15]], align 8
7373
; RUNTIME-NEXT: [[TMP16:%.*]] = add i64 [[TMP10]], 16
7474
; RUNTIME-NEXT: [[TMP17:%.*]] = inttoptr i64 [[TMP16]] to ptr
7575
; RUNTIME-NEXT: store i64 ptrtoint (ptr @Simple to i64), ptr [[TMP17]], align 8
@@ -119,7 +119,7 @@ define void @Simple() uwtable sanitize_address {
119119
; ALWAYS-NEXT: store i64 1102416563, ptr [[TMP8]], align 8
120120
; ALWAYS-NEXT: [[TMP9:%.*]] = add i64 [[TMP5]], 8
121121
; ALWAYS-NEXT: [[TMP10:%.*]] = inttoptr i64 [[TMP9]] to ptr
122-
; ALWAYS-NEXT: store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr [[TMP10]], align 8
122+
; ALWAYS-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack to i64), ptr [[TMP10]], align 8
123123
; ALWAYS-NEXT: [[TMP11:%.*]] = add i64 [[TMP5]], 16
124124
; ALWAYS-NEXT: [[TMP12:%.*]] = inttoptr i64 [[TMP11]] to ptr
125125
; ALWAYS-NEXT: store i64 ptrtoint (ptr @Simple to i64), ptr [[TMP12]], align 8
@@ -167,7 +167,7 @@ define void @Huge() uwtable sanitize_address {
167167
; CHECK-NEXT: store i64 1102416563, ptr [[TMP3]], align 8
168168
; CHECK-NEXT: [[TMP4:%.*]] = add i64 [[TMP0]], 8
169169
; CHECK-NEXT: [[TMP5:%.*]] = inttoptr i64 [[TMP4]] to ptr
170-
; CHECK-NEXT: store i64 ptrtoint (ptr @___asan_gen_.1 to i64), ptr [[TMP5]], align 8
170+
; CHECK-NEXT: store i64 ptrtoint (ptr @___asan_gen_stack.1 to i64), ptr [[TMP5]], align 8
171171
; CHECK-NEXT: [[TMP6:%.*]] = add i64 [[TMP0]], 16
172172
; CHECK-NEXT: [[TMP7:%.*]] = inttoptr i64 [[TMP6]] to ptr
173173
; CHECK-NEXT: store i64 ptrtoint (ptr @Huge to i64), ptr [[TMP7]], align 8

llvm/test/Instrumentation/AddressSanitizer/global_metadata.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ target triple = "x86_64-unknown-linux-gnu"
2020
; CHECK: @.str = internal constant { [14 x i8], [18 x i8] } { [14 x i8] c"Hello, world!\00", [18 x i8] zeroinitializer }, comdat({{.*}}), align 32
2121

2222
; Check emitted location descriptions:
23-
; CHECK: [[VARNAME:@___asan_gen_.[0-9]+]] = private unnamed_addr constant [7 x i8] c"global\00", align 1
23+
; CHECK: [[VARNAME:@___asan_gen_global[.0-9]*]] = private unnamed_addr constant [7 x i8] c"global\00", align 1
2424
; NOALIAS: @__asan_global_global = {{.*}}i64 ptrtoint (ptr @global to i64){{.*}} section "asan_globals"{{.*}}, !associated
2525
; NOALIAS: @__asan_global_.str = {{.*}}i64 ptrtoint (ptr @{{.str|1}} to i64){{.*}} section "asan_globals"{{.*}}, !associated
2626
; ALIAS: @__asan_global_global = {{.*}}i64 ptrtoint (ptr @0 to i64){{.*}} section "asan_globals"{{.*}}, !associated

llvm/test/Instrumentation/AddressSanitizer/global_metadata_array.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
2222
; CHECK: @.str = internal constant { [14 x i8], [18 x i8] } { [14 x i8] c"Hello, world!\00", [18 x i8] zeroinitializer }{{.*}}, align 32
2323

2424
; Check emitted location descriptions:
25-
; CHECK: [[VARNAME:@___asan_gen_.[0-9]+]] = private unnamed_addr constant [7 x i8] c"global\00", align 1
25+
; CHECK: [[VARNAME:@___asan_gen_global[.0-9]*]] = private unnamed_addr constant [7 x i8] c"global\00", align 1
2626

2727
; Check that location descriptors and global names were passed into __asan_register_globals:
2828
; CHECK: i64 ptrtoint (ptr [[VARNAME]] to i64)

llvm/test/Instrumentation/AddressSanitizer/global_with_comdat.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ target triple = "x86_64-unknown-linux-gnu"
4646
; NOCOMDAT: @.str = internal constant { [14 x i8], [18 x i8] } { [14 x i8] c"Hello, world!\00", [18 x i8] zeroinitializer }, align 32
4747

4848
; Check emitted location descriptions:
49-
; CHECK: [[VARNAME:@___asan_gen_.[0-9]+]] = private unnamed_addr constant [7 x i8] c"global\00", align 1
49+
; CHECK: [[VARNAME:@___asan_gen_global[.0-9]*]] = private unnamed_addr constant [7 x i8] c"global\00", align 1
5050
; COMDAT: @__asan_global_global = {{.*}}i64 ptrtoint (ptr @__odr_asan_gen_global to i64){{.*}} section "asan_globals"{{.*}}, comdat($global), !associated
51-
; COMDAT: @__asan_global_.str = {{.*}}i64 ptrtoint (ptr @___asan_gen_ to i64){{.*}} section "asan_globals"{{.*}}, comdat($.str.{{.*}}), !associated
51+
; COMDAT: @__asan_global_.str = {{.*}}i64 ptrtoint (ptr @___asan_gen_global{{[.0-9]*}} to i64){{.*}} section "asan_globals"{{.*}}, comdat($.str.{{.*}}), !associated
5252

5353
; The metadata has to be inserted to llvm.compiler.used to avoid being stripped
5454
; during LTO.

llvm/test/Instrumentation/AddressSanitizer/instrument_global.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ target triple = "x86_64-unknown-linux-gnu"
77
; If a global is present, __asan_[un]register_globals should be called from
88
; module ctor/dtor
99

10-
; CHECK: @___asan_gen_ = private constant [8 x i8] c"<stdin>\00", align 1
10+
; CHECK: @___asan_gen_module = private constant [8 x i8] c"<stdin>\00", align 1
1111
; CHECK: @llvm.used = appending global [2 x ptr] [ptr @asan.module_ctor, ptr @asan.module_dtor], section "llvm.metadata"
1212
; CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr @asan.module_ctor }]
1313
; CHECK: @llvm.global_dtors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_dtor, ptr @asan.module_dtor }]

llvm/test/Instrumentation/AddressSanitizer/instrument_late_initializer.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ define internal void @__late_ctor() sanitize_address section ".text.startup" {
5151
; CHECK-LABEL: define internal void @__late_ctor(
5252
; CHECK-SAME: ) #[[ATTR1:[0-9]+]] section ".text.startup" {
5353
; CHECK-NEXT: [[ENTRY:.*:]]
54-
; CHECK-NEXT: call void @__asan_before_dynamic_init(i64 ptrtoint (ptr @___asan_gen_ to i64))
54+
; CHECK-NEXT: call void @__asan_before_dynamic_init(i64 ptrtoint (ptr @___asan_gen_module to i64))
5555
; CHECK-NEXT: call void @__asan_after_dynamic_init()
5656
; CHECK-NEXT: ret void
5757
;

llvm/test/Instrumentation/AddressSanitizer/local_alias.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ target triple = "x86_64-unknown-linux-gnu"
1818
; Check that we generate internal alias and odr indicator symbols for global to be protected.
1919
; CHECK-NOINDICATOR-NOT: __odr_asan_gen_a
2020
; CHECK-NOALIAS-NOT: private alias
21-
; CHECK-INDICATOR: @___asan_gen_.1 = private unnamed_addr constant [2 x i8] c"a\00", align 1
21+
; CHECK-INDICATOR: @___asan_gen_global{{[.0-9]*}} = private unnamed_addr constant [2 x i8] c"a\00", align 1
2222
; CHECK-INDICATOR: @__odr_asan_gen_a = global i8 0, align 1
23-
; CHECK-INDICATOR: @___asan_gen_.4 = private unnamed_addr constant [2 x i8] c"d\00", align 1
23+
; CHECK-INDICATOR: @___asan_gen_global{{[.0-9]*}} = private unnamed_addr constant [2 x i8] c"d\00", align 1
2424
; CHECK-INDICATOR: @__odr_asan_gen__ZL1d = global i8 0, align 1
2525
; CHECK-ALIAS: @0 = private alias { [2 x i32], [24 x i8] }, ptr @a
2626

llvm/test/Instrumentation/AddressSanitizer/odr-check-ignore.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ target triple = "x86_64-unknown-linux-gnu"
99
@c = internal global [2 x i32] zeroinitializer, align 4
1010
@d = unnamed_addr global [2 x i32] zeroinitializer, align 4
1111

12-
; NOALIAS: @__asan_global_a = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @a to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.1 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 0 }
13-
; NOALIAS-NEXT: @__asan_global_b = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @b to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.2 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 -1 }
14-
; NOALIAS-NEXT: @__asan_global_c = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @c to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.3 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 -1 }
15-
; NOALIAS-NEXT: @__asan_global_d = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @d to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.4 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 0 }
12+
; NOALIAS: @__asan_global_a = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @a to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 0 }
13+
; NOALIAS-NEXT: @__asan_global_b = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @b to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 -1 }
14+
; NOALIAS-NEXT: @__asan_global_c = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @c to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 -1 }
15+
; NOALIAS-NEXT: @__asan_global_d = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @d to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 0 }
1616

17-
; ALIAS: @__asan_global_a = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @0 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.1 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 0 }
18-
; ALIAS-NEXT: @__asan_global_b = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @1 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.2 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 -1 }
19-
; ALIAS-NEXT: @__asan_global_c = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @2 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.3 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 -1 }
20-
; ALIAS-NEXT: @__asan_global_d = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @3 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_.4 to i64), i64 ptrtoint (ptr @___asan_gen_ to i64), i64 0, i64 0, i64 0 }
17+
; ALIAS: @__asan_global_a = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @0 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 0 }
18+
; ALIAS-NEXT: @__asan_global_b = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @1 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 -1 }
19+
; ALIAS-NEXT: @__asan_global_c = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @2 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 -1 }
20+
; ALIAS-NEXT: @__asan_global_d = private global { i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint (ptr @3 to i64), i64 8, i64 32, i64 ptrtoint (ptr @___asan_gen_global{{.*}} to i64), i64 ptrtoint (ptr @___asan_gen_module to i64), i64 0, i64 0, i64 0 }
2121
; ALIAS: @0 = private alias {{.*}} @a
2222
; ALIAS-NEXT: @1 = private alias {{.*}} @b
2323
; ALIAS-NEXT: @2 = private alias {{.*}} @c

0 commit comments

Comments
 (0)