diff options
Diffstat (limited to 'clang/test')
9 files changed, 0 insertions, 296 deletions
diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-1.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-1.c deleted file mode 100644 index accf6ab2cf9..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-1.c +++ /dev/null @@ -1,23 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// test simple member access and initial struct with non-zero stride access -struct s1 { - int a; - union { - int b; - int c; - }; -} __reloc__; -typedef struct s1 __s1; - -int test(__s1 *arg) { - return arg->a + arg[1].b; -} - -// CHECK: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 1) -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 1, i32 1) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 0) diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-2.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-2.c deleted file mode 100644 index a136eeea9f1..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-2.c +++ /dev/null @@ -1,24 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// test array access -struct s1 { - int a[3]; - union { - int b; - int c[4]; - }; -} __reloc__; -typedef struct s1 __s1; - -int test(__s1 *arg) { - return arg->a[2] + arg->c[2]; -} - -// CHECK: call [3 x i32]* @llvm.preserve.struct.access.index.p0a3i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call i32* @llvm.preserve.array.access.index.p0i32.p0a3i32([3 x i32]* %{{[0-9a-z]+}}, i32 1, i32 2) -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 1, i32 1) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 1) -// CHECK: call i32* @llvm.preserve.array.access.index.p0i32.p0a4i32([4 x i32]* %{{[0-9a-z]+}}, i32 1, i32 2) diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-3.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-3.c deleted file mode 100644 index 917b508704a..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-3.c +++ /dev/null @@ -1,32 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// chain of records, all with attributes -struct s1 { - int c; -} __reloc__; -typedef struct s1 __s1; - -struct s2 { - union { - __s1 b[3]; - }; -} __reloc__; -typedef struct s2 __s2; - -struct s3 { - __s2 a; -} __reloc__; -typedef struct s3 __s3; - -int test(__s3 *arg) { - return arg->a.b[2].c; -} - -// CHECK: call %struct.s2* @llvm.preserve.struct.access.index.p0s_struct.s2s.p0s_struct.s3s(%struct.s3* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s2s(%struct.s2* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0a3s_struct.s1s([3 x %struct.s1]* %{{[0-9a-z]+}}, i32 1, i32 2) -// CHECK: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-4.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-4.c deleted file mode 100644 index 5ec56d96de1..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-4.c +++ /dev/null @@ -1,33 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// chain of records, some do not have attributes. -struct s1 { - int c; -}; -typedef struct s1 __s1; - -struct s2 { - union { - __s1 b[3]; - }; -} __reloc__; -typedef struct s2 __s2; - -struct s3 { - __s2 a; -}; -typedef struct s3 __s3; - -int test(__s3 *arg) { - return arg->a.b[2].c; -} - -// CHECK: define dso_local i32 @test -// CHECK-NOT: call %struct.s2* @llvm.preserve.struct.access.index.p0s_struct.s2s.p0s_struct.s3s -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s2s(%struct.s2* %a, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %1, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0a3s_struct.s1s([3 x %struct.s1]* %b, i32 1, i32 2) -// CHECK-NOT: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-5.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-5.c deleted file mode 100644 index 281bcdd782c..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-5.c +++ /dev/null @@ -1,32 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// chain of records, attribute may be in inner record. -struct s1 { - int c; -} __reloc__; -typedef struct s1 __s1; - -struct s2 { - union { - __s1 b[3]; - } __reloc__; -}; -typedef struct s2 __s2; - -struct s3 { - __s2 a; -} __reloc__; -typedef struct s3 __s3; - -int test(__s3 *arg) { - return arg->a.b[2].c; -} - -// CHECK: call %struct.s2* @llvm.preserve.struct.access.index.p0s_struct.s2s.p0s_struct.s3s(%struct.s3* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK-NOT: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s2s -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0a3s_struct.s1s([3 x %struct.s1]* %{{[0-9a-z]+}}, i32 1, i32 2) -// CHECK: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-6.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-6.c deleted file mode 100644 index a763f28bcd6..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-6.c +++ /dev/null @@ -1,32 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// chain of records, both inner and outer record have attributes. -struct s1 { - int c; -} __reloc__; -typedef struct s1 __s1; - -struct s2 { - union { - __s1 b[3]; - } __reloc__; -} __reloc__; -typedef struct s2 __s2; - -struct s3 { - __s2 a; -} __reloc__; -typedef struct s3 __s3; - -int test(__s3 *arg) { - return arg->a.b[2].c; -} - -// CHECK: call %struct.s2* @llvm.preserve.struct.access.index.p0s_struct.s2s.p0s_struct.s3s(%struct.s3* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s2s(%struct.s2* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0a3s_struct.s1s([3 x %struct.s1]* %{{[0-9a-z]+}}, i32 1, i32 2) -// CHECK: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-7.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-7.c deleted file mode 100644 index 49f4a4d2b26..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-7.c +++ /dev/null @@ -1,36 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// chain of records, all with attributes -struct __reloc__ s1; -struct __reloc__ s2; -struct __reloc__ s3; - -struct s1 { - int c; -}; -typedef struct s1 __s1; - -struct s2 { - union { - __s1 b[3]; - }; -}; -typedef struct s2 __s2; - -struct s3 { - __s2 a; -}; -typedef struct s3 __s3; - -int test(__s3 *arg) { - return arg->a.b[2].c; -} - -// CHECK: call %struct.s2* @llvm.preserve.struct.access.index.p0s_struct.s2s.p0s_struct.s3s(%struct.s3* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s2s(%struct.s2* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0a3s_struct.s1s([3 x %struct.s1]* %{{[0-9a-z]+}}, i32 1, i32 2) -// CHECK: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) diff --git a/clang/test/CodeGen/bpf-attr-preserve-access-index-8.c b/clang/test/CodeGen/bpf-attr-preserve-access-index-8.c deleted file mode 100644 index 7febf7cbe2e..00000000000 --- a/clang/test/CodeGen/bpf-attr-preserve-access-index-8.c +++ /dev/null @@ -1,36 +0,0 @@ -// REQUIRES: bpf-registered-target -// RUN: %clang -target bpf -emit-llvm -S -g %s -o - | FileCheck %s - -#define __reloc__ __attribute__((preserve_access_index)) - -// chain of records, all with attributes -struct s1; -struct s2; -struct s3; - -struct s1 { - int c; -} __reloc__; -typedef struct s1 __s1; - -struct s2 { - union { - __s1 b[3]; - }; -} __reloc__; -typedef struct s2 __s2; - -struct s3 { - __s2 a; -} __reloc__; -typedef struct s3 __s3; - -int test(__s3 *arg) { - return arg->a.b[2].c; -} - -// CHECK: call %struct.s2* @llvm.preserve.struct.access.index.p0s_struct.s2s.p0s_struct.s3s(%struct.s3* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.struct.access.index.p0s_union.anons.p0s_struct.s2s(%struct.s2* %{{[0-9a-z]+}}, i32 0, i32 0) -// CHECK: call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(%union.anon* %{{[0-9a-z]+}}, i32 0) -// CHECK: call %struct.s1* @llvm.preserve.array.access.index.p0s_struct.s1s.p0a3s_struct.s1s([3 x %struct.s1]* %{{[0-9a-z]+}}, i32 1, i32 2) -// CHECK: call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.s1s(%struct.s1* %{{[0-9a-z]+}}, i32 0, i32 0) diff --git a/clang/test/Sema/bpf-attr-preserve-access-index.c b/clang/test/Sema/bpf-attr-preserve-access-index.c deleted file mode 100644 index 472f778b6b5..00000000000 --- a/clang/test/Sema/bpf-attr-preserve-access-index.c +++ /dev/null @@ -1,48 +0,0 @@ -// RUN: %clang_cc1 -x c -triple bpf-pc-linux-gnu -dwarf-version=4 -fsyntax-only -verify %s - -#define __reloc__ __attribute__((preserve_access_index)) -#define __err_reloc__ __attribute__((preserve_access_index(0))) - -struct t1 { - int a; - int b[4]; - int c:1; -} __reloc__; - -union t2 { - int a; - int b[4]; - int c:1; -} __reloc__; - -struct t3 { - int a; -} __err_reloc__; // expected-error {{'preserve_access_index' attribute takes no arguments}} - -struct t4 { - union { - int a; - char b[5]; - }; - struct { - int c:1; - } __reloc__; - int d; -} __reloc__; - -struct __reloc__ p; -struct __reloc__ q; -struct p { - int a; -}; - -int a __reloc__; // expected-error {{preserve_addess_index attribute only applies to struct or union type}} -struct s *p __reloc__; // expected-error {{preserve_addess_index attribute only applies to struct or union type}} - -void invalid1(const int __reloc__ *arg) {} // expected-error {{preserve_addess_index attribute only applies to struct or union type}} -void invalid2() { const int __reloc__ *arg; } // expected-error {{preserve_addess_index attribute only applies to struct or union type}} -int valid3(struct t4 *arg) { return arg->a + arg->b[3] + arg->c + arg->d; } -int valid4(void *arg) { - struct local_t { int a; int b; } __reloc__; - return ((struct local_t *)arg)->b; -} |