xref: /llvm-project/clang/test/CIR/global-var-simple.cpp (revision 8e329593313bb792592529ee825a52683108df99)
1 // Global variables of intergal types
2 // RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o -  | FileCheck %s
3 
4 char c;
5 // CHECK: cir.global @c : !cir.int<s, 8>
6 
7 signed char sc;
8 // CHECK: cir.global @sc : !cir.int<s, 8>
9 
10 unsigned char uc;
11 // CHECK: cir.global @uc : !cir.int<u, 8>
12 
13 short ss;
14 // CHECK: cir.global @ss : !cir.int<s, 16>
15 
16 unsigned short us = 100;
17 // CHECK: cir.global @us = #cir.int<100> : !cir.int<u, 16>
18 
19 int si = 42;
20 // CHECK: cir.global @si = #cir.int<42> : !cir.int<s, 32>
21 
22 unsigned ui;
23 // CHECK: cir.global @ui : !cir.int<u, 32>
24 
25 long sl;
26 // CHECK: cir.global @sl : !cir.int<s, 64>
27 
28 unsigned long ul;
29 // CHECK: cir.global @ul : !cir.int<u, 64>
30 
31 long long sll;
32 // CHECK: cir.global @sll : !cir.int<s, 64>
33 
34 unsigned long long ull = 123456;
35 // CHECK: cir.global @ull = #cir.int<123456> : !cir.int<u, 64>
36 
37 __int128 s128;
38 // CHECK: cir.global @s128 : !cir.int<s, 128>
39 
40 unsigned __int128 u128;
41 // CHECK: cir.global @u128 : !cir.int<u, 128>
42 
43 wchar_t wc;
44 // CHECK: cir.global @wc : !cir.int<s, 32>
45 
46 char8_t c8;
47 // CHECK: cir.global @c8 : !cir.int<u, 8>
48 
49 char16_t c16;
50 // CHECK: cir.global @c16 : !cir.int<u, 16>
51 
52 char32_t c32;
53 // CHECK: cir.global @c32 : !cir.int<u, 32>
54 
55 _BitInt(20) sb20;
56 // CHECK: cir.global @sb20 : !cir.int<s, 20>
57 
58 unsigned _BitInt(48) ub48;
59 // CHECK: cir.global @ub48 : !cir.int<u, 48>
60 
61 _Float16 f16;
62 // CHECK: cir.global @f16 : !cir.f16
63 
64 __bf16 bf16;
65 // CHECK: cir.global @bf16 : !cir.bf16
66 
67 float f;
68 // CHECK: cir.global @f : !cir.float
69 
70 double d = 1.25;
71 // CHECK: cir.global @d = #cir.fp<1.250000e+00> : !cir.double
72 
73 long double ld;
74 // CHECK: cir.global @ld : !cir.long_double<!cir.f80>
75 
76 __float128 f128;
77 // CHECK: cir.global @f128 : !cir.f128
78 
79 void *vp;
80 // CHECK: cir.global @vp : !cir.ptr<!cir.void>
81 
82 int *ip = 0;
83 // CHECK: cir.global @ip = #cir.ptr<null> : !cir.ptr<!cir.int<s, 32>>
84 
85 double *dp;
86 // CHECK: cir.global @dp : !cir.ptr<!cir.double>
87 
88 char **cpp;
89 // CHECK: cir.global @cpp : !cir.ptr<!cir.ptr<!cir.int<s, 8>>>
90 
91 void (*fp)();
92 // CHECK: cir.global @fp : !cir.ptr<!cir.func<!cir.void ()>>
93 
94 int (*fpii)(int) = 0;
95 // CHECK: cir.global @fpii = #cir.ptr<null> : !cir.ptr<!cir.func<!cir.int<s, 32> (!cir.int<s, 32>)>>
96 
97 void (*fpvar)(int, ...);
98 // CHECK: cir.global @fpvar : !cir.ptr<!cir.func<!cir.void (!cir.int<s, 32>, ...)>>
99