Home | History | Annotate | Download | only in Sema
      1 // RUN: %clang_cc1 %s -ast-print | FileCheck %s
      2 // RUN: %clang_cc1 %s -ast-print | %clang_cc1 -fsyntax-only -
      3 
      4 typedef void func_typedef();
      5 func_typedef xxx;
      6 
      7 typedef void func_t(int x);
      8 func_t a;
      9 
     10 struct blah {
     11   struct {
     12     struct {
     13       int b;
     14     };
     15   };
     16 };
     17 
     18 int foo(const struct blah *b) {
     19   // CHECK: return b->b;
     20   return b->b;
     21 }
     22 
     23 int arr(int a[static 3]) {
     24   // CHECK: int a[static 3]
     25   return a[2];
     26 }
     27 
     28 int rarr(int a[restrict static 3]) {
     29   // CHECK: int a[restrict static 3]
     30   return a[2];
     31 }
     32 
     33 int varr(int n, int a[static n]) {
     34   // CHECK: int a[static n]
     35   return a[2];
     36 }
     37 
     38 int rvarr(int n, int a[restrict static n]) {
     39   // CHECK: int a[restrict static n]
     40   return a[2];
     41 }
     42 
     43 // CHECK: typedef struct {
     44 typedef struct {
     45   int f;
     46 } T __attribute__ ((__aligned__));
     47 
     48 // CHECK: struct __attribute__((visibility("default"))) S;
     49 struct __attribute__((visibility("default"))) S;
     50 
     51 struct pair_t {
     52   int a;
     53   int b;
     54 };
     55 
     56 // CHECK: struct pair_t p = {a: 3, .b = 4};
     57 struct pair_t p = {a: 3, .b = 4};
     58 
     59 void initializers() {
     60   // CHECK: int *x = ((void *)0), *y = ((void *)0);
     61   int *x = ((void *)0), *y = ((void *)0);
     62   struct Z{};
     63   struct {
     64     struct Z z;
     65   // CHECK: } z = {(struct Z){}};
     66   } z = {(struct Z){}};
     67 }
     68