Clang Project

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