// Global variables of scalar typees with initial values // RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o - | FileCheck %s char c; // CHECK: cir.global external @c = #cir.int<0> : !s8i signed char sc; // CHECK: cir.global external @sc = #cir.int<0> : !s8i unsigned char uc; // CHECK: cir.global external @uc = #cir.int<0> : !u8i short ss; // CHECK: cir.global external @ss = #cir.int<0> : !s16i unsigned short us = 100; // CHECK: cir.global external @us = #cir.int<100> : !u16i int si = 42; // CHECK: cir.global external @si = #cir.int<42> : !s32i unsigned ui; // CHECK: cir.global external @ui = #cir.int<0> : !u32i long sl; // CHECK: cir.global external @sl = #cir.int<0> : !s64i unsigned long ul; // CHECK: cir.global external @ul = #cir.int<0> : !u64i long long sll; // CHECK: cir.global external @sll = #cir.int<0> : !s64i unsigned long long ull = 123456; // CHECK: cir.global external @ull = #cir.int<123456> : !u64i __int128 s128; // CHECK: cir.global external @s128 = #cir.int<0> : !s128i unsigned __int128 u128; // CHECK: cir.global external @u128 = #cir.int<0> : !u128i wchar_t wc; // CHECK: cir.global external @wc = #cir.int<0> : !s32i char8_t c8; // CHECK: cir.global external @c8 = #cir.int<0> : !u8i char16_t c16; // CHECK: cir.global external @c16 = #cir.int<0> : !u16i char32_t c32; // CHECK: cir.global external @c32 = #cir.int<0> : !u32i _BitInt(20) sb20; // CHECK: cir.global external @sb20 = #cir.int<0> : !cir.int unsigned _BitInt(48) ub48; // CHECK: cir.global external @ub48 = #cir.int<0> : !cir.int bool boolfalse = false; // CHECK: cir.global external @boolfalse = #false _Float16 f16; // CHECK: cir.global external @f16 = #cir.fp<0.000000e+00> : !cir.f16 __bf16 bf16; // CHECK: cir.global external @bf16 = #cir.fp<0.000000e+00> : !cir.bf16 float f; // CHECK: cir.global external @f = #cir.fp<0.000000e+00> : !cir.float double d = 1.25; // CHECK: cir.global external @d = #cir.fp<1.250000e+00> : !cir.double long double ld; // CHECK: cir.global external @ld = #cir.fp<0.000000e+00> : !cir.long_double __float128 f128; // CHECK: cir.global external @f128 = #cir.fp<0.000000e+00> : !cir.f128 void *vp; // CHECK: cir.global external @vp = #cir.ptr : !cir.ptr int *ip = 0; // CHECK: cir.global external @ip = #cir.ptr : !cir.ptr double *dp; // CHECK: cir.global external @dp = #cir.ptr : !cir.ptr char **cpp; // CHECK: cir.global external @cpp = #cir.ptr : !cir.ptr> void (*fp)(); // CHECK: cir.global external @fp = #cir.ptr : !cir.ptr> int (*fpii)(int) = 0; // CHECK: cir.global external @fpii = #cir.ptr : !cir.ptr !s32i>> void (*fpvar)(int, ...); // CHECK: cir.global external @fpvar = #cir.ptr : !cir.ptr>