[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Transforms / SafeStack / X86 / escape-bitcast-store.ll
blobbde9c3a21964c889e55d279dd0336eb99071b146
1 ; RUN: opt -safe-stack -S -mtriple=i386-pc-linux-gnu < %s -o - | FileCheck %s
2 ; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck %s
4 @.str = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1
6 ; Addr-of a local cast to a ptr of a different type
7 ;   (e.g., int a; ... ; ptr b = &a;)
8 ;  safestack attribute
9 ; Requires protector.
10 define void @foo() nounwind uwtable safestack {
11 entry:
12   ; CHECK: __safestack_unsafe_stack_ptr
13   %a = alloca i32, align 4
14   %b = alloca ptr, align 8
15   store i32 0, ptr %a, align 4
16   store ptr %a, ptr %b, align 8
17   %0 = load ptr, ptr %b, align 8
18   %call = call i32 (ptr, ...) @printf(ptr @.str, ptr %0)
19   ret void
22 declare i32 @printf(ptr, ...)