[Clang][CodeGen]`vtable`, `typeinfo` et al. are globals
[llvm-project.git] / llvm / test / Instrumentation / AddressSanitizer / module-flags.ll
blob34778372f67a5c3577e8ddc7f7074d50c7ac00c5
1 ; RUN: opt < %s -passes=asan -S | FileCheck %s
3 target triple = "x86_64-unknown-linux-gnu"
5 @g = dso_local global i32 0, align 4
7 define i32 @test_load() sanitize_address {
8 entry:
9   %tmp = load i32, ptr @g, align 4
10   ret i32 %tmp
13 !llvm.module.flags = !{!0, !1}
15 ;; Due to -fasynchronous-unwind-tables.
16 !0 = !{i32 7, !"uwtable", i32 2}
18 ;; Due to -fno-omit-frame-pointer.
19 !1 = !{i32 7, !"frame-pointer", i32 2}
21 ;; Set the uwtable attribute on ctor/dtor.
22 ; CHECK: define internal void @asan.module_ctor() #[[#ATTR:]]
23 ; CHECK: define internal void @asan.module_dtor() #[[#ATTR]]
24 ; CHECK: attributes #[[#ATTR]] = { nounwind uwtable "frame-pointer"="all" }