blob: 198fd22a3a74daa047cde9f25ebddd4a0b6b323d [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
Mike Stump8408db32009-10-08 21:52:07 +00002// CHECK: addrspace(1)
3// CHECK: addrspace(2)
4// CHECK: addrspace(1)
5// CHECK: addrspace(1)
6// CHECK: addrspace(2)
7// CHECK: addrspace(2)
8// CHECK: addrspace(1)
9// CHECK: addrspace(1)
10// CHECK: addrspace(2)
11// CHECK: addrspace(2)
12// CHECK: addrspace(1)
13// CHECK: addrspace(1)
14// CHECK: addrspace(1)
15// CHECK: addrspace(1)
16// CHECK: addrspace(1)
17// CHECK: addrspace(1)
18// CHECK: addrspace(1)
19// CHECK: addrspace(1)
20// CHECK: addrspace(1)
21// CHECK: addrspace(2)
22// CHECK: addrspace(2)
23// CHECK: addrspace(2)
24// CHECK: addrspace(2)
25// CHECK: addrspace(2)
26// CHECK: addrspace(2)
27// CHECK: addrspace(2)
28// CHECK: addrspace(2)
29// CHECK: addrspace(2)
30// CHECK: addrspace(2)
31// CHECK: addrspace(2)
Mon P Wangc6a38a42009-07-22 03:08:17 +000032
33// Check that we don't lose the address space when accessing an array element
34// inside a structure.
35
36#define __addr1 __attribute__((address_space(1)))
37#define __addr2 __attribute__((address_space(2)))
38
39typedef struct S {
40 int arr[ 3 ];
41} S;
42
43void test_addrspace(__addr1 S* p1, __addr2 S*p2, int* val, int n) {
44 for (int i=0; i < 3; ++i) {
45 int t = val[i];
46 p1->arr[i] = t;
47 for (int j=0; j < n; ++j)
48 p2[j].arr[i] = t;
49 }
50}