blob: 52b9c7543d4c20164e7e4f6d031c778ae3d12e19 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 %s -fsyntax-only -verify
Chris Lattnerab18c4c2007-07-24 16:58:17 +00002
3typedef unsigned __uint32_t;
4
5#define __byte_swap_int_var(x) \
6__extension__ ({ register __uint32_t __X = (x); \
7 __asm ("bswap %0" : "+r" (__X)); \
8 __X; })
9
10int test(int _x) {
11 return (__byte_swap_int_var(_x));
12}
Chris Lattner611b2ec2008-07-26 19:51:01 +000013
14// PR2374
15int test2() { return ({L:5;}); }
Douglas Gregord4eea832010-04-09 00:35:39 +000016int test3() { return ({ {5;} }); } // expected-error {{returning 'void' from a function with incompatible result type 'int'}}\
Chris Lattner611b2ec2008-07-26 19:51:01 +000017 // expected-warning {{expression result unused}}
18int test4() { return ({ ({5;}); }); }
19int test5() { return ({L1: L2: L3: 5;}); }
20int test6() { return ({5;}); }
21void test7() { ({5;}); } // expected-warning {{expression result unused}}
22
Eli Friedmandca2b732009-01-24 23:09:00 +000023// PR3062
Chris Lattner40c56f72009-04-18 06:51:21 +000024int test8[({10;})]; // expected-error {{statement expression not allowed at file scope}}
25
26// PR3912
27void test9(const void *P) {
28 __builtin_prefetch(P);
29}
Chris Lattner9e6b37a2009-10-30 04:01:58 +000030
31
32void *test10() {
33bar:
34 return &&bar; // expected-warning {{returning address of label, which is local}}
35}
Chris Lattner7e52de42010-01-24 01:50:29 +000036
37// PR6034
38void test11(int bit) {
39 switch (bit)
40 switch (env->fpscr) // expected-error {{use of undeclared identifier 'env'}}
41 {
42 }
43}