96 lines · plain
1; RUN: opt < %s -mtriple aarch64-linux-android29 -passes=hwasan -S | FileCheck %s --check-prefix=NOPERS2; RUN: opt < %s -mtriple aarch64-linux-android30 -passes=hwasan -S | FileCheck %s --check-prefix=PERS3 4; NOPERS: define void @nostack() #{{[0-9]+}} {5; PERS: define void @nostack() #{{[0-9]+}} {6define void @nostack() sanitize_hwaddress "branch-target-enforcement" {7 ret void8}9 10; NOPERS: define void @stack1() #{{[0-9]+}} {11; PERS: personality {{.*}} @__hwasan_personality_thunk12define void @stack1() sanitize_hwaddress "branch-target-enforcement" {13 %p = alloca i814 call void @sink(ptr %p)15 ret void16}17 18 19; NOPERS: personality ptr @global20; PERS: personality {{.*}} @__hwasan_personality_thunk.global21define void @stack2() sanitize_hwaddress "branch-target-enforcement" personality ptr @global {22 %p = alloca i823 call void @sink(ptr %p)24 ret void25}26 27define internal void @local() {28 ret void29}30 31@local_alias = internal alias void (), ptr @local32 33; NOPERS: personality ptr @local34; PERS: personality {{.*}} @__hwasan_personality_thunk.local35define void @stack3() sanitize_hwaddress "branch-target-enforcement" personality ptr @local {36 %p = alloca i837 call void @sink(ptr %p)38 ret void39}40 41; NOPERS: personality ptr @local_alias42; PERS: personality {{.*}} @__hwasan_personality_thunk.local_alias43define void @stack4() sanitize_hwaddress "branch-target-enforcement" personality ptr @local_alias {44 %p = alloca i845 call void @sink(ptr %p)46 ret void47}48 49; NOPERS: personality ptr inttoptr (i64 1 to ptr)50; PERS: personality ptr @__hwasan_personality_thunk.51define void @stack5() sanitize_hwaddress "branch-target-enforcement" personality ptr inttoptr (i64 1 to ptr) {52 %p = alloca i853 call void @sink(ptr %p)54 ret void55}56 57; NOPERS: personality ptr inttoptr (i64 2 to ptr)58; PERS: personality ptr @__hwasan_personality_thunk..159define void @stack6() sanitize_hwaddress "branch-target-enforcement" personality ptr inttoptr (i64 2 to ptr) {60 %p = alloca i861 call void @sink(ptr %p)62 ret void63}64 65declare void @global()66declare void @sink(ptr)67 68!llvm.module.flags = !{!0}69!0 = !{i32 8, !"branch-target-enforcement", i32 1}70 71; PERS: define linkonce_odr hidden i32 @__hwasan_personality_thunk(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) [[ATTRS:#[0-9]+]] comdat72; PERS: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr null, ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)73; PERS: ret i32 %574 75; PERS: define linkonce_odr hidden i32 @__hwasan_personality_thunk.global(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {{.*}}[[ATTRS]] comdat76; PERS: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr @global, ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)77; PERS: ret i32 %578 79; PERS: define internal i32 @__hwasan_personality_thunk.local(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {{.*}}[[ATTRS]]80; PERS: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr @local, ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)81; PERS: ret i32 %582 83; PERS: define internal i32 @__hwasan_personality_thunk.local_alias(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {{.*}}[[ATTRS]]84; PERS: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr @local_alias, ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)85; PERS: ret i32 %586 87; PERS: define internal i32 @__hwasan_personality_thunk.(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {{.*}}[[ATTRS]] {88; PERS: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr inttoptr (i64 1 to ptr), ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)89; PERS: ret i32 %590 91; PERS: define internal i32 @__hwasan_personality_thunk..1(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {{.*}}[[ATTRS]] {92; PERS: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr inttoptr (i64 2 to ptr), ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)93; PERS: ret i32 %594 95; PERS: {{.*}}[[ATTRS]] = {{.*}}branch-target-enforcement96