Skip to content

Commit 1f1fe3d

Browse files
committed
fixup: Improve tests
1 parent 54fc788 commit 1f1fe3d

File tree

3 files changed

+26
-13
lines changed

3 files changed

+26
-13
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/// Check that -ffixed register handled for globals.
2+
/// Regression test for #76426, #109778
3+
4+
// RUN: %clang -c --target=aarch64-none-gnu -ffixed-x15 %s 2>&1 | count 0
5+
6+
// RUN: not %clang -c --target=aarch64-none-gnu %s 2>&1 | \
7+
// RUN: FileCheck %s --check-prefix=ERR_INVREG
8+
// ERR_INVREG: error: register 'x15' unsuitable for global register variables on this target
9+
10+
// RUN: not %clang -c --target=aarch64-none-gnu -ffixed-x15 -DTYPE=short %s 2>&1 | \
11+
// RUN: FileCheck %s --check-prefix=ERR_SIZE
12+
// ERR_SIZE: error: size of register 'x15' does not match variable size
13+
14+
#ifndef TYPE
15+
#define TYPE long
16+
#endif
17+
18+
register TYPE x15 __asm__("x15");
19+
20+
TYPE foo() {
21+
return x15;
22+
}

clang/test/Driver/aarch64-fixed-register-global.c

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
// RUN: %clang_cc1 -triple aarch64-unknown-none-gnu %s -target-feature +reserve-x4 -target-feature +reserve-x15 -verify -fsyntax-only
1+
// RUN: %clang_cc1 -triple aarch64-unknown-none-gnu %s -target-feature +reserve-x4 -target-feature +reserve-x15 -verify -verify=no_x18 -fsyntax-only
2+
// RUN: %clang_cc1 -triple aarch64-unknown-android %s -target-feature +reserve-x4 -target-feature +reserve-x15 -verify -fsyntax-only
23

4+
register long x0 __asm__ ("x0");
35
register char i1 __asm__ ("x15"); // expected-error {{size of register 'x15' does not match variable size}}
46
register long long l2 __asm__ ("w14"); // expected-error {{size of register 'w14' does not match variable size}}
57
register long x3 __asm__ ("x3"); // expected-error {{register 'x3' unsuitable for global register variables on this target}}
68
register long x4 __asm__ ("x4");
9+
register long x18 __asm__ ("x18"); // no_x18-error {{register 'x18' unsuitable for global register variables on this target}}

0 commit comments

Comments
 (0)