diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGen/patchable-function-entry.c | 18 | ||||
-rw-r--r-- | clang/test/Driver/fpatchable-function-entry.c | 8 | ||||
-rw-r--r-- | clang/test/Sema/patchable-function-entry-attr.c | 4 |
3 files changed, 21 insertions, 9 deletions
diff --git a/clang/test/CodeGen/patchable-function-entry.c b/clang/test/CodeGen/patchable-function-entry.c index 50b96ea883a..f41f12d0669 100644 --- a/clang/test/CodeGen/patchable-function-entry.c +++ b/clang/test/CodeGen/patchable-function-entry.c @@ -17,10 +17,20 @@ __attribute__((patchable_function_entry(2, 0))) void f20() {} __attribute__((patchable_function_entry(2, 0))) void f20decl(); void f20decl() {} -// OPT: define void @f() #2 +// CHECK: define void @f44() #2 +__attribute__((patchable_function_entry(4, 4))) void f44() {} + +// CHECK: define void @f52() #3 +__attribute__((patchable_function_entry(5, 2))) void f52() {} + +// OPT: define void @f() #4 void f() {} -/// M in patchable_function_entry(N,M) is currently ignored. -// CHECK: attributes #0 = { {{.*}} "patchable-function-entry"="0" +/// No need to emit "patchable-function-entry"="0" +// CHECK: attributes #0 = { {{.*}} +// CHECK-NOT: "patchable-function-entry" + // CHECK: attributes #1 = { {{.*}} "patchable-function-entry"="2" -// OPT: attributes #2 = { {{.*}} "patchable-function-entry"="1" +// CHECK: attributes #2 = { {{.*}} "patchable-function-entry"="0" "patchable-function-prefix"="4" +// CHECK: attributes #3 = { {{.*}} "patchable-function-entry"="3" "patchable-function-prefix"="2" +// OPT: attributes #4 = { {{.*}} "patchable-function-entry"="1" diff --git a/clang/test/Driver/fpatchable-function-entry.c b/clang/test/Driver/fpatchable-function-entry.c index 36076dc393c..5ac262c1a46 100644 --- a/clang/test/Driver/fpatchable-function-entry.c +++ b/clang/test/Driver/fpatchable-function-entry.c @@ -4,12 +4,14 @@ // RUN: %clang -target aarch64 %s -fpatchable-function-entry=1,0 -c -### 2>&1 | FileCheck %s // CHECK: "-fpatchable-function-entry=1" +// RUN: %clang -target aarch64 -fsyntax-only %s -fpatchable-function-entry=1,1 -c -### 2>&1 | FileCheck --check-prefix=11 %s +// 11: "-fpatchable-function-entry=1" "-fpatchable-function-entry-offset=1" +// RUN: %clang -target aarch64 -fsyntax-only %s -fpatchable-function-entry=2,1 -c -### 2>&1 | FileCheck --check-prefix=21 %s +// 21: "-fpatchable-function-entry=2" "-fpatchable-function-entry-offset=1" + // RUN: not %clang -target ppc64 -fsyntax-only %s -fpatchable-function-entry=1 2>&1 | FileCheck --check-prefix=TARGET %s // TARGET: error: unsupported option '-fpatchable-function-entry=1' for target 'ppc64' -// RUN: not %clang -target i386 -fsyntax-only %s -fpatchable-function-entry=1,1 2>&1 | FileCheck --check-prefix=NONZERO %s -// NONZERO: error: the second argument of '-fpatchable-function-entry' must be 0 or omitted - // RUN: not %clang -target x86_64 -fsyntax-only %s -fpatchable-function-entry=1,0, 2>&1 | FileCheck --check-prefix=EXCESS %s // EXCESS: error: invalid argument '1,0,' to -fpatchable-function-entry= diff --git a/clang/test/Sema/patchable-function-entry-attr.c b/clang/test/Sema/patchable-function-entry-attr.c index f807bd45e42..0fa1abdbd8a 100644 --- a/clang/test/Sema/patchable-function-entry-attr.c +++ b/clang/test/Sema/patchable-function-entry-attr.c @@ -13,5 +13,5 @@ int i; // expected-error@+1 {{'patchable_function_entry' attribute requires parameter 0 to be an integer constant}} __attribute__((patchable_function_entry(i))) void f(); -// expected-error@+1 {{'patchable_function_entry' attribute requires integer constant between 0 and 0 inclusive}} -__attribute__((patchable_function_entry(1, 1))) void f(); +// expected-error@+1 {{'patchable_function_entry' attribute requires integer constant between 0 and 2 inclusive}} +__attribute__((patchable_function_entry(2, 3))) void f(); |