llvm-project/clang/test/Sema/arm-execute-only-tls.c
Oliver Stannard 5e43418e0e
[ARM] Forbid use of TLS with execute-only (#124806)
Thread-local code generation requires constant pools because most of the
relocations needed for it operate on data, so it cannot be used with
-mexecute-only (or -mpure-code, which is aliased in the driver).

Without this we hit an assertion in the backend when trying to generate
a constant pool.
2025-01-29 10:41:58 +00:00

11 lines
574 B
C

// RUN: %clang_cc1 -triple arm-none-eabi -fsyntax-only -verify=default %s
// RUN: %clang_cc1 -triple arm-none-eabi -target-feature +execute-only -fsyntax-only -verify=execute-only %s
// default-no-diagnostics
/// Thread-local code generation requires constant pools because most of the
/// relocations needed for it operate on data, so it cannot be used with
/// -mexecute-only (or -mpure-code, which is aliased in the driver).
_Thread_local int t; // execute-only-error {{thread-local storage is not supported for the current target}}