Home | History | Annotate | Download | only in Sema
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 // expected-no-diagnostics
      3 struct {unsigned x : 2;} x;
      4 __typeof__((x.x+=1)+1) y;
      5 __typeof__(x.x<<1) y;
      6 int y;
      7 
      8 
      9 struct { int x : 8; } x1;
     10 long long y1;
     11 __typeof__(((long long)x1.x + 1)) y1;
     12 
     13 
     14 // Check for extensions: variously sized unsigned bit-fields fitting
     15 // into a signed int promote to signed int.
     16 enum E { ec1, ec2, ec3 };
     17 struct S {
     18   enum E          e : 2;
     19   unsigned short us : 4;
     20   unsigned long long ul1 : 8;
     21   unsigned long long ul2 : 50;
     22 } s;
     23 
     24 __typeof(s.e + s.e) x_e;
     25 int x_e;
     26 
     27 __typeof(s.us + s.us) x_us;
     28 int x_us;
     29 
     30 __typeof(s.ul1 + s.ul1) x_ul1;
     31 int x_ul1;
     32 
     33 __typeof(s.ul2 + s.ul2) x_ul2;
     34 unsigned long long x_ul2;
     35 
     36