1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -w -emit-llvm %s -o /dev/null 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc 4*f4a2713aSLionel Sambuc typedef struct BF { 5*f4a2713aSLionel Sambuc int A : 1; 6*f4a2713aSLionel Sambuc char B; 7*f4a2713aSLionel Sambuc int C : 13; 8*f4a2713aSLionel Sambuc } BF; 9*f4a2713aSLionel Sambuc test1(BF * b)10*f4a2713aSLionel Sambucchar *test1(BF *b) { 11*f4a2713aSLionel Sambuc return &b->B; // Must be able to address non-bitfield 12*f4a2713aSLionel Sambuc } 13*f4a2713aSLionel Sambuc test2(BF * b)14*f4a2713aSLionel Sambucvoid test2(BF *b) { // Increment and decrement operators 15*f4a2713aSLionel Sambuc b->A++; 16*f4a2713aSLionel Sambuc --b->C; 17*f4a2713aSLionel Sambuc } 18*f4a2713aSLionel Sambuc test3(BF * b)19*f4a2713aSLionel Sambucvoid test3(BF *b) { 20*f4a2713aSLionel Sambuc b->C = 12345; // Store 21*f4a2713aSLionel Sambuc } 22*f4a2713aSLionel Sambuc test4(BF * b)23*f4a2713aSLionel Sambucint test4(BF *b) { 24*f4a2713aSLionel Sambuc return b->C; // Load 25*f4a2713aSLionel Sambuc } 26*f4a2713aSLionel Sambuc test5(BF * b,int i)27*f4a2713aSLionel Sambucvoid test5(BF *b, int i) { // array ref 28*f4a2713aSLionel Sambuc b[i].C = 12345; 29*f4a2713aSLionel Sambuc } 30*f4a2713aSLionel Sambuc 31