239 lines · c
1// REQUIRES: arm-registered-target2// RUN: %clang_cc1 -target-abi aapcs -triple armv7-apple-darwin10 %s -verify3// expected-no-diagnostics4 5#include <stddef.h>6 7struct t18{9 int foo : 1;10 char : 0;11 char bar;12};13static int arr1_offset[(offsetof(struct t1, bar) == 1) ? 0 : -1];14static int arr1_sizeof[(sizeof(struct t1) == 4) ? 0 : -1];15 16struct t217{18 int foo : 1;19 short : 0;20 char bar;21};22static int arr2_offset[(offsetof(struct t2, bar) == 2) ? 0 : -1];23static int arr2_sizeof[(sizeof(struct t2) == 4) ? 0 : -1];24 25struct t326{27 int foo : 1;28 int : 0;29 char bar;30};31static int arr3_offset[(offsetof(struct t3, bar) == 4) ? 0 : -1];32static int arr3_sizeof[(sizeof(struct t3) == 8) ? 0 : -1];33 34struct t435{36 int foo : 1;37 long : 0;38 char bar;39};40static int arr4_offset[(offsetof(struct t4, bar) == 4) ? 0 : -1];41static int arr4_sizeof[(sizeof(struct t4) == 8) ? 0 : -1];42 43struct t544{45 int foo : 1;46 long long : 0;47 char bar;48};49static int arr5_offset[(offsetof(struct t5, bar) == 8) ? 0 : -1];50static int arr5_sizeof[(sizeof(struct t5) == 16) ? 0 : -1];51 52struct t653{54 int foo : 1;55 char : 0;56 char bar : 1;57 char bar2;58};59static int arr6_offset[(offsetof(struct t6, bar2) == 2) ? 0 : -1];60static int arr6_sizeof[(sizeof(struct t6) == 4) ? 0 : -1];61 62struct t763{64 int foo : 1;65 short : 0;66 char bar1 : 1;67 char bar2;68};69static int arr7_offset[(offsetof(struct t7, bar2) == 3) ? 0 : -1];70static int arr7_sizeof[(sizeof(struct t7) == 4) ? 0 : -1];71 72struct t873{74 int foo : 1;75 int : 0;76 char bar1 : 1;77 char bar2;78};79static int arr8_offset[(offsetof(struct t8, bar2) == 5) ? 0 : -1];80static int arr8_sizeof[(sizeof(struct t8) == 8) ? 0 : -1];81 82struct t983{84 int foo : 1;85 long : 0;86 char bar1 : 1;87 char bar2;88};89static int arr9_offset[(offsetof(struct t9, bar2) == 5) ? 0 : -1];90static int arr9_sizeof[(sizeof(struct t9) == 8) ? 0 : -1];91 92struct t1093{94 int foo : 1;95 long long : 0;96 char bar1 : 1;97 char bar2;98};99static int arr10_offset[(offsetof(struct t10, bar2) == 9) ? 0 : -1];100static int arr10_sizeof[(sizeof(struct t10) == 16) ? 0 : -1];101 102struct t11103{104 int foo : 1;105 long long : 0;106 char : 0;107 char bar1 : 1;108 char bar2;109};110static int arr11_offset[(offsetof(struct t11, bar2) == 9) ? 0 : -1];111static int arr11_sizeof[(sizeof(struct t11) == 16) ? 0 : -1];112 113struct t12114{115 int foo : 1;116 char : 0;117 long long : 0;118 char : 0;119 char bar;120};121static int arr12_offset[(offsetof(struct t12, bar) == 8) ? 0 : -1];122static int arr12_sizeof[(sizeof(struct t12) == 16) ? 0 : -1];123 124struct t13125{126 char foo;127 long : 0;128 char bar;129};130static int arr13_offset[(offsetof(struct t13, bar) == 4) ? 0 : -1];131static int arr13_sizeof[(sizeof(struct t13) == 8) ? 0 : -1];132 133struct t14134{135 char foo1;136 int : 0;137 char foo2 : 1;138 short foo3 : 16;139 char : 0;140 short foo4 : 16;141 char bar1;142 int : 0;143 char bar2;144};145static int arr14_bar1_offset[(offsetof(struct t14, bar1) == 10) ? 0 : -1];146static int arr14_bar2_offset[(offsetof(struct t14, bar2) == 12) ? 0 : -1];147static int arr14_sizeof[(sizeof(struct t14) == 16) ? 0 : -1];148 149struct t15150{151 char foo;152 char : 0;153 int : 0;154 char bar;155 long : 0;156 char : 0;157};158static int arr15_offset[(offsetof(struct t15, bar) == 4) ? 0 : -1];159static int arr15_sizeof[(sizeof(struct t15) == 8) ? 0 : -1];160 161struct t16162{163 long : 0;164 char bar;165};166static int arr16_offset[(offsetof(struct t16, bar) == 0) ? 0 : -1];167static int arr16_sizeof[(sizeof(struct t16) == 4) ? 0 : -1];168 169struct t17170{171 char foo;172 long : 0;173 long : 0;174 char : 0;175 char bar;176};177static int arr17_offset[(offsetof(struct t17, bar) == 4) ? 0 : -1];178static int arr17_sizeof[(sizeof(struct t17) == 8) ? 0 : -1];179 180struct t18181{182 long : 0;183 long : 0;184 char : 0;185};186static int arr18_sizeof[(sizeof(struct t18) == 0) ? 0 : -1];187 188struct t19189{190 char foo1;191 long foo2 : 1;192 char : 0;193 long foo3 : 32;194 char bar;195};196static int arr19_offset[(offsetof(struct t19, bar) == 8) ? 0 : -1];197static int arr19_sizeof[(sizeof(struct t19) == 12) ? 0 : -1];198 199struct t20200{201 short : 0;202 int foo : 1;203 long : 0;204 char bar;205};206static int arr20_offset[(offsetof(struct t20, bar) == 4) ? 0 : -1];207static int arr20_sizeof[(sizeof(struct t20) == 8) ? 0 : -1];208 209struct t21210{211 short : 0;212 int foo1 : 1;213 char : 0;214 int foo2 : 16;215 long : 0;216 char bar1;217 int bar2;218 long bar3;219 char foo3 : 8;220 char : 0;221 long : 0;222 int foo4 : 32;223 short foo5: 1;224 long bar4;225 short foo6: 16;226 short foo7: 16;227 short foo8: 16;228};229static int arr21_bar1_offset[(offsetof(struct t21, bar1) == 4) ? 0 : -1];230static int arr21_bar2_offset[(offsetof(struct t21, bar2) == 8) ? 0 : -1];231static int arr21_bar3_offset[(offsetof(struct t21, bar3) == 12) ? 0 : -1];232static int arr21_bar4_offset[(offsetof(struct t21, bar4) == 28) ? 0 : -1];233static int arr21_sizeof[(sizeof(struct t21) == 40) ? 0 : -1];234 235int main() {236 return 0;237}238 239