blob: 25c7aa254547be0a9c8253b4af4b51fd1b79940d [file] [log] [blame]
/// Check that -ffixed register handled for globals.
/// Regression test for #76426, #109778
// REQUIRES: aarch64-registered-target
// RUN: %clang -c --target=aarch64-none-gnu -ffixed-x15 %s -o /dev/null 2>&1 | count 0
// RUN: not %clang -c --target=aarch64-none-gnu %s -o /dev/null 2>&1 | \
// RUN: FileCheck %s --check-prefix=ERR_INVREG
// ERR_INVREG: error: register 'x15' unsuitable for global register variables on this target
// RUN: not %clang -c --target=aarch64-none-gnu -ffixed-x15 -DTYPE=short %s -o /dev/null 2>&1 | \
// RUN: FileCheck %s --check-prefix=ERR_SIZE
// ERR_SIZE: error: size of register 'x15' does not match variable size
#ifndef TYPE
#define TYPE long
#endif
register TYPE x15 __asm__("x15");
TYPE foo() {
return x15;
}