Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 %s -emit-llvm -o - -triple=i686-unknown-nacl | FileCheck %s
      2 // Check that i686-nacl essentially has -malign-double, which aligns
      3 // double, long double, and long long to 64-bits.
      4 
      5 int checksize[sizeof(long double) == 8 ? 1 : -1];
      6 int checkalign[__alignof(long double) == 8 ? 1 : -1];
      7 
      8 // CHECK-LABEL: define void @s1(double %a)
      9 void s1(long double a) {}
     10 
     11 struct st_ld {
     12   char c;
     13   long double ld;
     14 };
     15 int checksize2[sizeof(struct st_ld) == 16 ? 1 : -1];
     16 int checkalign2[__alignof(struct st_ld) == 8 ? 1 : -1];
     17 
     18 int checksize3[sizeof(double) == 8 ? 1 : -1];
     19 int checkalign3[__alignof(double) == 8 ? 1 : -1];
     20 
     21 // CHECK-LABEL: define void @s2(double %a)
     22 void s2(double a) {}
     23 
     24 struct st_d {
     25   char c;
     26   double d;
     27 };
     28 int checksize4[sizeof(struct st_d) == 16 ? 1 : -1];
     29 int checkalign4[__alignof(struct st_d) == 8 ? 1 : -1];
     30 
     31 
     32 int checksize5[sizeof(long long) == 8 ? 1 : -1];
     33 int checkalign5[__alignof(long long) == 8 ? 1 : -1];
     34 
     35 // CHECK-LABEL: define void @s3(i64 %a)
     36 void s3(long long a) {}
     37 
     38 struct st_ll {
     39   char c;
     40   long long ll;
     41 };
     42 int checksize6[sizeof(struct st_ll) == 16 ? 1 : -1];
     43 int checkalign6[__alignof(struct st_ll) == 8 ? 1 : -1];
     44