Home | History | Annotate | Download | only in CodeGen
      1 // Testcase for PR1242
      2 // RUN: %clang_cc1 -emit-llvm %s -o - | grep datalayout | \
      3 // RUN:    not grep {"\[Ee\]-p:\[36\]\[24\]:\[36\]\[24\]"}
      4 // END.
      5 
      6 typedef __SIZE_TYPE__ size_t;
      7 void * malloc(size_t size);
      8 #define NDIM 3
      9 #define BODY 01
     10 typedef double vector[NDIM];
     11 typedef struct bnode* bodyptr;
     12 // { i16, double, [3 x double], i32, i32, [3 x double], [3 x double], [3 x
     13 // double], double, \2 *, \2 * }
     14 struct bnode {
     15   short int type;
     16   double mass;
     17   vector pos;
     18   int proc;
     19   int new_proc;
     20   vector vel;
     21   vector acc;
     22   vector new_acc;
     23   double phi;
     24   bodyptr next;
     25   bodyptr proc_next;
     26 } body;
     27 
     28 #define Type(x) ((x)->type)
     29 #define Mass(x) ((x)->mass)
     30 #define Pos(x)  ((x)->pos)
     31 #define Proc(x) ((x)->proc)
     32 #define New_Proc(x) ((x)->new_proc)
     33 #define Vel(x)  ((x)->vel)
     34 #define Acc(x)  ((x)->acc)
     35 #define New_Acc(x)  ((x)->new_acc)
     36 #define Phi(x)  ((x)->phi)
     37 #define Next(x) ((x)->next)
     38 #define Proc_Next(x) ((x)->proc_next)
     39 
     40 bodyptr ubody_alloc(int p)
     41 {
     42   register bodyptr tmp;
     43   tmp = (bodyptr)malloc(sizeof(body));
     44 
     45   Type(tmp) = BODY;
     46   Proc(tmp) = p;
     47   Proc_Next(tmp) = NULL;
     48   New_Proc(tmp) = p;
     49   return tmp;
     50 }
     51 
     52 int main(int argc, char** argv) {
     53   bodyptr b = ubody_alloc(17);
     54   return 0;
     55 }
     56