blob: 090f4a104b05246627be48f29946a4a4ae47a0c3 [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(2)
13// CHECK: addrspace(2)
14// CHECK: addrspace(2)
15// CHECK: addrspace(2)
16// CHECK: addrspace(2)
17// CHECK: addrspace(2)
18// CHECK: addrspace(2)
19// CHECK: addrspace(2)
20// CHECK: addrspace(2)
21// CHECK: addrspace(1)
22// CHECK: addrspace(1)
23// CHECK: addrspace(1)
24// CHECK: addrspace(1)
25// CHECK: addrspace(1)
26// CHECK: addrspace(1)
27// CHECK: addrspace(1)
28// CHECK: addrspace(1)
29// CHECK: addrspace(1)
Mon P Wangc6a38a42009-07-22 03:08:17 +000030
31// Check that we don't lose the address space when accessing an array element
32// inside a structure.
33
34#define __addr1 __attribute__((address_space(1)))
35#define __addr2 __attribute__((address_space(2)))
36
37typedef struct S {
38 int arr[ 3 ];
39} S;
40
41void test_addrspace(__addr1 S* p1, __addr2 S*p2, int* val, int n) {
42 for (int i=0; i < 3; ++i) {
43 int t = val[i];
44 p1->arr[i] = p2->arr[i];
45 }
46}