diff options
author | Zancanaro; Carlo <czan8762@plang3.cs.usyd.edu.au> | 2012-09-24 09:58:17 +1000 |
---|---|---|
committer | Zancanaro; Carlo <czan8762@plang3.cs.usyd.edu.au> | 2012-09-24 09:58:17 +1000 |
commit | 222e2a7620e6520ffaf4fc4e69d79c18da31542e (patch) | |
tree | 7bfbc05bfa3b41c8f9d2e56d53a0bc3e310df239 /clang/test/Parser/expressions.c | |
parent | 3d206f03985b50beacae843d880bccdc91a9f424 (diff) |
Add the clang library to the repo (with some of my changes, too).
Diffstat (limited to 'clang/test/Parser/expressions.c')
-rw-r--r-- | clang/test/Parser/expressions.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/clang/test/Parser/expressions.c b/clang/test/Parser/expressions.c new file mode 100644 index 0000000..0d1b6c9 --- /dev/null +++ b/clang/test/Parser/expressions.c @@ -0,0 +1,59 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +void test1() { + if (sizeof (int){ 1}) {} // sizeof compound literal + if (sizeof (int)) {} // sizeof type + + (void)(int)4; // cast. + (void)(int){4}; // compound literal. + + int A = (struct{ int a;}){ 1}.a; +} + +int test2(int a, int b) { + return a ? (void)a,b : a; +} + +int test3(int a, int b, int c) { + return a = b = c; +} + +int test4() { + test4(); + return 0; +} + +struct X0 { struct { struct { int c[10][9]; } b; } a; }; + +int test_offsetof() { + (void)__builtin_offsetof(struct X0, a.b.c[4][5]); + return 0; +} + +void test_sizeof(){ + int arr[10]; + (void)sizeof arr[0]; + (void)sizeof(arr[0]); + (void)sizeof(arr)[0]; +} + +// PR3418 +int test_leading_extension() { + __extension__ (*(char*)0) = 1; // expected-warning {{indirection of non-volatile null pointer}} \ + // expected-note {{consider using __builtin_trap}} + return 0; +} + +// PR3972 +int test5(int); +int test6(void) { + return test5( // expected-note {{to match}} + test5(1) + ; // expected-error {{expected ')'}} +} + +// PR8394 +void test7() { + ({} // expected-note {{to match}} + ; // expected-error {{expected ')'}} +} |