Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -emit-llvm -w -o - %s | FileCheck %s
      2 
      3 // char by definition has size 1
      4 
      5 int check_short() {
      6   return sizeof(short);
      7 // CHECK: ret i32 2
      8 }
      9 
     10 int check_int() {
     11   return sizeof(int);
     12 // CHECK: ret i32 4
     13 }
     14 
     15 int check_long() {
     16 // Both 4 and 8 are permitted under the PCS, Linux says 8!
     17   return sizeof(long);
     18 // CHECK: ret i32 8
     19 }
     20 
     21 int check_longlong() {
     22   return sizeof(long long);
     23 // CHECK: ret i32 8
     24 }
     25 
     26 int check_int128() {
     27   return sizeof(__int128);
     28 // CHECK: ret i32 16
     29 }
     30 
     31 int check_fp16() {
     32   return sizeof(__fp16);
     33 // CHECK: ret i32 2
     34 }
     35 
     36 int check_float() {
     37   return sizeof(float);
     38 // CHECK: ret i32 4
     39 }
     40 
     41 int check_double() {
     42   return sizeof(double);
     43 // CHECK: ret i32 8
     44 }
     45 
     46 int check_longdouble() {
     47   return sizeof(long double);
     48 // CHECK: ret i32 16
     49 }
     50 
     51 int check_floatComplex() {
     52   return sizeof(float _Complex);
     53 // CHECK: ret i32 8
     54 }
     55 
     56 int check_doubleComplex() {
     57   return sizeof(double _Complex);
     58 // CHECK: ret i32 16
     59 }
     60 
     61 int check_longdoubleComplex() {
     62   return sizeof(long double _Complex);
     63 // CHECK: ret i32 32
     64 }
     65 
     66 int check_bool() {
     67   return sizeof(_Bool);
     68 // CHECK: ret i32 1
     69 }
     70 
     71 int check_wchar() {
     72 // PCS allows either unsigned short or unsigned int. Linux again says "bigger!"
     73   return sizeof(__WCHAR_TYPE__);
     74 // CHECK: ret i32 4
     75 }
     76 
     77 int check_wchar_unsigned() {
     78   return (__WCHAR_TYPE__)-1 > (__WCHAR_TYPE__)0;
     79 // CHECK: ret i32 1
     80 }
     81 
     82 enum Small {
     83   Item
     84 };
     85 
     86 int foo() {
     87   return sizeof(enum Small);
     88 // CHECK: ret i32 4
     89 }
     90 
     91