xref: /aosp_15_r20/external/clang/test/Lexer/ms-extensions.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -fms-extensions %s
2*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -fms-compatibility %s
3*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -triple i386-pc-win32 -fms-compatibility %s
4*67e74705SXin Li 
5*67e74705SXin Li __int8 x1  = 3i8;
6*67e74705SXin Li __int16 x2 = 4i16;
7*67e74705SXin Li __int32 x3 = 5i32;
8*67e74705SXin Li __int64 x5 = 0x42i64;
9*67e74705SXin Li __int64 x6 = 0x42I64;
10*67e74705SXin Li 
11*67e74705SXin Li __int64 y = 0x42i64u;  // expected-error {{invalid suffix}}
12*67e74705SXin Li __int64 w = 0x43ui64;
13*67e74705SXin Li __int64 z = 9Li64;  // expected-error {{invalid suffix}}
14*67e74705SXin Li __int64 q = 10lli64;  // expected-error {{invalid suffix}}
15*67e74705SXin Li 
16*67e74705SXin Li __complex double c1 = 1i;
17*67e74705SXin Li __complex double c2 = 1.0i;
18*67e74705SXin Li __complex float c3 = 1.0if;
19*67e74705SXin Li 
20*67e74705SXin Li // radar 7562363
21*67e74705SXin Li #define ULLONG_MAX 0xffffffffffffffffui64
22*67e74705SXin Li #define UINT 0xffffffffui32
23*67e74705SXin Li #define USHORT 0xffffui16
24*67e74705SXin Li #define UCHAR 0xffui8
25*67e74705SXin Li 
a()26*67e74705SXin Li void a() {
27*67e74705SXin Li 	unsigned long long m = ULLONG_MAX;
28*67e74705SXin Li 	unsigned int n = UINT;
29*67e74705SXin Li         unsigned short s = USHORT;
30*67e74705SXin Li         unsigned char c = UCHAR;
31*67e74705SXin Li }
32*67e74705SXin Li 
pr_7968()33*67e74705SXin Li void pr_7968()
34*67e74705SXin Li {
35*67e74705SXin Li   int var1 = 0x1111111e+1;
36*67e74705SXin Li   int var2 = 0X1111111e+1;
37*67e74705SXin Li   int var3 = 0xe+1;
38*67e74705SXin Li   int var4 = 0XE+1;
39*67e74705SXin Li 
40*67e74705SXin Li   int var5=    0\
41*67e74705SXin Li x1234e+1;
42*67e74705SXin Li 
43*67e74705SXin Li   int var6=
44*67e74705SXin Li   /*expected-warning {{backslash and newline separated by space}} */    0\
45*67e74705SXin Li x1234e+1;
46*67e74705SXin Li }
47*67e74705SXin Li 
48