brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 9bdda53 Raw
242 lines · c
1// REQUIRES: arm-registered-target2// RUN: %clang_cc1 -target-abi apcs-gnu -triple armv7-apple-darwin10 %s -verify3// expected-no-diagnostics4//5// Note: gcc forces the alignment to 4 bytes, regardless of the type of the6// zero length bitfield.7 8#include <stddef.h>9 10struct t111{12  int foo : 1;13  char : 0;14  char bar;15};16static int arr1_offset[(offsetof(struct t1, bar) == 4) ? 0 : -1];17static int arr1_sizeof[(sizeof(struct t1) == 8) ? 0 : -1];18 19struct t220{21  int foo : 1;22  short : 0;23  char bar;24};25static int arr2_offset[(offsetof(struct t2, bar) == 4) ? 0 : -1];26static int arr2_sizeof[(sizeof(struct t2) == 8) ? 0 : -1];27 28struct t329{30  int foo : 1;31  int : 0;32  char bar;33};34static int arr3_offset[(offsetof(struct t3, bar) == 4) ? 0 : -1];35static int arr3_sizeof[(sizeof(struct t3) == 8) ? 0 : -1];36 37struct t438{39  int foo : 1;40  long : 0;41  char bar;42};43static int arr4_offset[(offsetof(struct t4, bar) == 4) ? 0 : -1];44static int arr4_sizeof[(sizeof(struct t4) == 8) ? 0 : -1];45 46struct t547{48  int foo : 1;49  long long : 0;50  char bar;51};52static int arr5_offset[(offsetof(struct t5, bar) == 4) ? 0 : -1];53static int arr5_sizeof[(sizeof(struct t5) == 8) ? 0 : -1];54 55struct t656{57  int foo : 1;58  char : 0;59  char bar : 1;60  char bar2;61};62static int arr6_offset[(offsetof(struct t6, bar2) == 5) ? 0 : -1];63static int arr6_sizeof[(sizeof(struct t6) == 8) ? 0 : -1];64 65struct t766{67  int foo : 1;68  short : 0;69  char bar1 : 1;70  char bar2;71};72static int arr7_offset[(offsetof(struct t7, bar2) == 5) ? 0 : -1];73static int arr7_sizeof[(sizeof(struct t7) == 8) ? 0 : -1];74 75struct t876{77  int foo : 1;78  int : 0;79  char bar1 : 1;80  char bar2;81};82static int arr8_offset[(offsetof(struct t8, bar2) == 5) ? 0 : -1];83static int arr8_sizeof[(sizeof(struct t8) == 8) ? 0 : -1];84 85struct t986{87  int foo : 1;88  long : 0;89  char bar1 : 1;90  char bar2;91};92static int arr9_offset[(offsetof(struct t9, bar2) == 5) ? 0 : -1];93static int arr9_sizeof[(sizeof(struct t9) == 8) ? 0 : -1];94 95struct t1096{97  int foo : 1;98  long long : 0;99  char bar1 : 1;100  char bar2;101};102static int arr10_offset[(offsetof(struct t10, bar2) == 5) ? 0 : -1];103static int arr10_sizeof[(sizeof(struct t10) == 8) ? 0 : -1];104 105struct t11106{107  int foo : 1;108  long long : 0;109  char : 0;110  char bar1 : 1;111  char bar2;112};113static int arr11_offset[(offsetof(struct t11, bar2) == 5) ? 0 : -1];114static int arr11_sizeof[(sizeof(struct t11) == 8) ? 0 : -1];115 116struct t12117{118  int foo : 1;119  char : 0;120  long long : 0;121  char : 0;122  char bar;123};124static int arr12_offset[(offsetof(struct t12, bar) == 4) ? 0 : -1];125static int arr12_sizeof[(sizeof(struct t12) == 8) ? 0 : -1];126 127struct t13128{129  char foo;130  long : 0;131  char bar;132};133static int arr13_offset[(offsetof(struct t13, bar) == 4) ? 0 : -1];134static int arr13_sizeof[(sizeof(struct t13) == 8) ? 0 : -1];135 136struct t14137{138  char foo1;139  int : 0;140  char foo2 : 1;141  short foo3 : 16;142  char : 0;143  short foo4 : 16;144  char bar1;145  int : 0;146  char bar2;147};148static int arr14_bar1_offset[(offsetof(struct t14, bar1) == 10) ? 0 : -1];149static int arr14_bar2_offset[(offsetof(struct t14, bar2) == 12) ? 0 : -1];150static int arr14_sizeof[(sizeof(struct t14) == 16) ? 0 : -1];151 152struct t15153{154  char foo;155  char : 0;156  int : 0;157  char bar;158  long : 0;159  char : 0;160};161static int arr15_offset[(offsetof(struct t15, bar) == 4) ? 0 : -1];162static int arr15_sizeof[(sizeof(struct t15) == 8) ? 0 : -1];163 164struct t16165{166  long : 0;167  char bar;168};169static int arr16_offset[(offsetof(struct t16, bar) == 0) ? 0 : -1];170static int arr16_sizeof[(sizeof(struct t16) == 4) ? 0 : -1];171 172struct t17173{174  char foo;175  long : 0;176  long : 0;177  char : 0;178  char bar;179};180static int arr17_offset[(offsetof(struct t17, bar) == 4) ? 0 : -1];181static int arr17_sizeof[(sizeof(struct t17) == 8) ? 0 : -1];182 183struct t18184{185  long : 0;186  long : 0;187  char : 0;188};189static int arr18_sizeof[(sizeof(struct t18) == 0) ? 0 : -1];190 191struct t19192{193  char foo1;194  long foo2 : 1;195  char : 0;196  long foo3 : 32;197  char bar;198};199static int arr19_offset[(offsetof(struct t19, bar) == 8) ? 0 : -1];200static int arr19_sizeof[(sizeof(struct t19) == 12) ? 0 : -1];201 202struct t20203{204  short : 0;205  int foo : 1;206  long : 0;207  char bar;208};209static int arr20_offset[(offsetof(struct t20, bar) == 4) ? 0 : -1];210static int arr20_sizeof[(sizeof(struct t20) == 8) ? 0 : -1];211 212struct t21213{214  short : 0;215  int foo1 : 1;216  char : 0;217  int foo2 : 16;218  long : 0;219  char bar1;220  int bar2;221  long bar3;222  char foo3 : 8;223  char : 0;224  long : 0;225  int foo4 : 32;226  short foo5: 1;227  long bar4;228  short foo6: 16;229  short foo7: 16;230  short foo8: 16;231};232static int arr21_bar1_offset[(offsetof(struct t21, bar1) == 8) ? 0 : -1];233static int arr21_bar2_offset[(offsetof(struct t21, bar2) == 12) ? 0 : -1];234static int arr21_bar3_offset[(offsetof(struct t21, bar3) == 16) ? 0 : -1];235static int arr21_bar4_offset[(offsetof(struct t21, bar4) == 32) ? 0 : -1];236static int arr21_sizeof[(sizeof(struct t21) == 44) ? 0 : -1];237 238int main() {239  return 0;240}241 242