struct.c revision b1e3989731b69e692f9fa2ad080406850c772b40
1// RUN: clang %s -emit-llvm 2 3struct { 4 int x; 5 int y; 6} point; 7 8void fn1() { 9 point.x = 42; 10} 11 12/* Nested member */ 13struct { 14 struct { 15 int a; 16 int b; 17 } p1; 18} point2; 19 20void fn2() { 21 point2.p1.a = 42; 22} 23 24/* Indirect reference */ 25typedef struct __sf { 26 unsigned char *c; 27 short flags; 28} F; 29 30typedef struct __sf2 { 31 F *ff; 32} F2; 33 34int fn3(F2 *c) { 35 if (c->ff->c >= 0) 36 return 1; 37 else 38 return 0; 39} 40 41/* Nested structs */ 42typedef struct NA { 43 int data; 44 struct NA *next; 45} NA; 46void f1() { A a; } 47 48typedef struct NB { 49 int d1; 50 struct _B2 { 51 int d2; 52 struct NB *n2; 53 } B2; 54} NB; 55 56void f2() { NB b; } 57 58