91 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 {7 ret void8}9 10; NOPERS: define void @stack1() #{{[0-9]+}} {11; PERS: personality {{.*}} @__hwasan_personality_thunk12define void @stack1() sanitize_hwaddress {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 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 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 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 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 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; PERS: define linkonce_odr hidden i32 @__hwasan_personality_thunk(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) comdat69; 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)70; PERS: ret i32 %571 72; PERS: define linkonce_odr hidden i32 @__hwasan_personality_thunk.global(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) comdat73; 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)74; PERS: ret i32 %575 76; PERS: define internal i32 @__hwasan_personality_thunk.local(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4)77; 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)78; PERS: ret i32 %579 80; PERS: define internal i32 @__hwasan_personality_thunk.local_alias(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4)81; 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)82; PERS: ret i32 %583 84; PERS: define internal i32 @__hwasan_personality_thunk.(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {85; 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)86; PERS: ret i32 %587 88; PERS: define internal i32 @__hwasan_personality_thunk..1(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) {89; 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)90; PERS: ret i32 %591