/// 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; }