xref: /llvm-project/clang/test/CodeGen/avr/address-space-avr.c (revision 39db5e1ed87363a9ffea81e53520b542201b3262)
1 // RUN: %clang_cc1 -triple avr -target-cpu atmega2560 -emit-llvm < %s | FileCheck %s
2 
3 // CHECK: @var0 {{.*}} addrspace(1) constant [3 x i16]
4 // CHECK: @f3var0 {{.*}} addrspace(4) constant [3 x i16]
5 // CHECK: @bar.var2 {{.*}} addrspace(1) constant [3 x i16]
6 // CHECK: @bar.f3var2 {{.*}} addrspace(4) constant [3 x i16]
7 // CHECK: @var1 {{.*}} addrspace(1) constant [3 x i16]
8 // CHECK: @f3var1 {{.*}} addrspace(4) constant [3 x i16]
9 
10 // CHECK: define{{.*}} void @bar() addrspace(1)
11 // CHECK: call addrspace(1) void @foo
12 // CHECK: declare void @foo(...) addrspace(1)
13 
14 __flash const int var0[] = {999, 888, 777};
15 __flash static const int var1[] = {111, 222, 333};
16 
17 __flash3 const int f3var0[] = {12, 34, 56};
18 __flash3 static const int f3var1[] = {52, 64, 96};
19 
20 int i;
21 
22 void foo();
23 
bar(void)24 void bar(void) {
25   static __flash const int var2[] = {555, 666, 777};
26   static __flash3 const int f3var2[] = {5555, 6666, 7787};
27   foo(var1[i]);
28   foo(f3var1[i]);
29 }
30