Clang Project

clang_source_code/test/CodeGen/iamcu-abi.c
1// RUN: %clang_cc1 -triple i386-pc-elfiamcu -emit-llvm -o - %s | FileCheck %s
2
3// CHECK: target datalayout = "e-m:e-p:32:32-i64:32-f64:32-f128:32-n8:16:32-a:0:32-S32"
4// CHECK: target triple = "i386-pc-elfiamcu"
5
6
7void food(double *d);
8void fooll(long long *ll);
9void fooull(unsigned long long *ull);
10void foold(long double *ld);
11
12// CHECK-LABEL: define void @testdouble()
13// CHECK: alloca double, align 4
14void testdouble() {
15  double d = 2.0;
16  food(&d);
17}
18
19// CHECK-LABEL: define void @testlonglong()
20// CHECK: alloca i64, align 4
21void testlonglong() {
22  long long ll = 2;
23  fooll(&ll);
24}
25
26// CHECK-LABEL: define void @testunsignedlonglong()
27// CHECK: alloca i64, align 4
28void testunsignedlonglong() {
29  unsigned long long ull = 2;
30  fooull(&ull);
31}
32
33// CHECK-LABEL: define void @testlongdouble()
34// CHECK: alloca double, align 4
35void testlongdouble() {
36  long double ld = 2.0;
37  foold(&ld);
38}
39