File tree Expand file tree Collapse file tree 3 files changed +26
-13
lines changed Expand file tree Collapse file tree 3 files changed +26
-13
lines changed Original file line number Diff line number Diff line change 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+ }
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 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" );
35register char i1 __asm__ ("x15" ); // expected-error {{size of register 'x15' does not match variable size}}
46register long long l2 __asm__ ("w14" ); // expected-error {{size of register 'w14' does not match variable size}}
57register long x3 __asm__ ("x3" ); // expected-error {{register 'x3' unsuitable for global register variables on this target}}
68register long x4 __asm__ ("x4" );
9+ register long x18 __asm__ ("x18" ); // no_x18-error {{register 'x18' unsuitable for global register variables on this target}}
You can’t perform that action at this time.
0 commit comments