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