llvm-project/clang/test/Parser/statements.c

69 lines
977 B
C

// RUN: clang -fsyntax-only %s
int test1() {
{ ; { ;;}} ;;
}
int test2() {
if (0) { if (1) {} } else { }
do { } while (0);
while (0) while(0) do ; while(0);
for (0;0;0)
for (;;)
for (9;0;2)
;
for (int X = 0; 0; 0);
}
int test3() {
switch (0) {
case 4:
if (0) {
case 6: ;
}
default:
;
}
}
int test4() {
if (0);
int X; // declaration in a block.
foo: if (0);
}
typedef int t;
void test5() {
if (0);
//t x = 0; // FIXME: Enable when handling of typedef names is impl.
if (0);
}
void test6() {
if (sizeof (int){ 1}); // sizeof compound literal
if (sizeof (int)); // sizeof type
(int)4; // cast.
(int){4}; // compound literal.
// FIXME: change this to the struct version when we can.
//int A = (struct{ int a;}){ 1}.a;
int A = (int){ 1}.a;
}
int test7(int a, int b) {
return a ? a,b : a;
}
int test8(int a, int b) {
return a = b = c;
}