xref: /llvm-project/clang/test/CodeGen/bool-convert.c (revision 39db5e1ed87363a9ffea81e53520b542201b3262)
1 // RUN: %clang_cc1 -triple i686-pc-linux -emit-llvm < %s | FileCheck %s
2 // All of these should uses the memory representation of _Bool
3 
4 // CHECK-LABEL: %struct.teststruct1 = type { i8, i8 }
5 // CHECK-LABEL: @test1 ={{.*}} global %struct.teststruct1
6 struct teststruct1 {_Bool a, b;} test1;
7 
8 // CHECK-LABEL: @test2 ={{.*}} global ptr null
9 _Bool* test2;
10 
11 // CHECK-LABEL: @test3 ={{.*}} global [10 x i8]
12 _Bool test3[10];
13 
14 // CHECK-LABEL: @test4 ={{.*}} global ptr null
15 _Bool (*test4)[];
16 
17 // CHECK-LABEL: define{{.*}} void @f(i32 noundef %x)
f(int x)18 void f(int x) {
19   // CHECK: alloca i8, align 1
20   _Bool test5;
21 
22   // CHECK: alloca i8, i32 %{{.*}}, align 1
23   _Bool test6[x];
24 }
25