12220be2109a0b5d95a95c2532a6286637a201f10Daniel Dunbar// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s 23cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 33cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar#include <stddef.h> 43cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 53cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar#pragma options align=mac68k 63cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 73cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbartypedef float __attribute__((vector_size (8))) v2f_t; 83cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbartypedef float __attribute__((vector_size (16))) v4f_t; 93cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 103cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a0_0[__alignof(v2f_t) == 8 ? 1 : -1]; 113cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a0_1[__alignof(v4f_t) == 16 ? 1 : -1]; 123cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 133cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s1 { 143cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 153cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar int f1; 163cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 173cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a1_0[offsetof(struct s1, f0) == 0 ? 1 : -1]; 183cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a1_1[offsetof(struct s1, f1) == 2 ? 1 : -1]; 193cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a1_2[sizeof(struct s1) == 6 ? 1 : -1]; 203cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a1_3[__alignof(struct s1) == 2 ? 1 : -1]; 213cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 223cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s2 { 233cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 243cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar double f1; 253cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 263cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a2_0[offsetof(struct s2, f0) == 0 ? 1 : -1]; 273cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a2_1[offsetof(struct s2, f1) == 2 ? 1 : -1]; 283cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a2_2[sizeof(struct s2) == 10 ? 1 : -1]; 293cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a2_3[__alignof(struct s2) == 2 ? 1 : -1]; 303cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 313cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s3 { 323cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 333cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar v4f_t f1; 343cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 353cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a3_0[offsetof(struct s3, f0) == 0 ? 1 : -1]; 363cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a3_1[offsetof(struct s3, f1) == 2 ? 1 : -1]; 373cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a3_2[sizeof(struct s3) == 18 ? 1 : -1]; 383cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a3_3[__alignof(struct s3) == 2 ? 1 : -1]; 393cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 403cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s4 { 413cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 423cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f1; 433cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 443cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a4_0[offsetof(struct s4, f0) == 0 ? 1 : -1]; 453cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a4_1[offsetof(struct s4, f1) == 1 ? 1 : -1]; 463cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a4_2[sizeof(struct s4) == 2 ? 1 : -1]; 473cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a4_3[__alignof(struct s4) == 2 ? 1 : -1]; 483cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 493cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s5 { 503cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned f0 : 9; 513cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned f1 : 9; 523cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 533cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a5_0[sizeof(struct s5) == 4 ? 1 : -1]; 543cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a5_1[__alignof(struct s5) == 2 ? 1 : -1]; 553cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 563cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s6 { 573cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned : 0; 583cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned : 0; 593cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 603cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a6_0[sizeof(struct s6) == 0 ? 1 : -1]; 613cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a6_1[__alignof(struct s6) == 2 ? 1 : -1]; 623cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 633cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s7 { 643cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char : 1; 653cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned : 1; 663cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 673cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a7_0[sizeof(struct s7) == 2 ? 1 : -1]; 683cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a7_1[__alignof(struct s7) == 2 ? 1 : -1]; 693cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 703cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s8 { 713cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 723cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned : 1; 733cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 743cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a8_0[sizeof(struct s8) == 2 ? 1 : -1]; 753cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a8_1[__alignof(struct s8) == 2 ? 1 : -1]; 763cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 773cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s9 { 783cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0[3]; 793cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar unsigned : 0; 803cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f1; 813cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 823cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a9_0[sizeof(struct s9) == 6 ? 1 : -1]; 833cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a9_1[__alignof(struct s9) == 2 ? 1 : -1]; 843cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 853cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s10 { 863cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 873cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 883cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a10_0[sizeof(struct s10) == 2 ? 1 : -1]; 893cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a10_1[__alignof(struct s10) == 2 ? 1 : -1]; 903cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar 913cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarstruct s11 { 923cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar char f0; 933cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar v2f_t f1; 943cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbar}; 953cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a11_0[offsetof(struct s11, f0) == 0 ? 1 : -1]; 963cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a11_1[offsetof(struct s11, f1) == 2 ? 1 : -1]; 973cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a11_2[sizeof(struct s11) == 10 ? 1 : -1]; 983cfaa6cdce59d7f14090daa8b5d5a2f60347215cDaniel Dunbarextern int a11_3[__alignof(struct s11) == 2 ? 1 : -1]; 99