Changes since v1:
- Adjust the inline assembler to also work for Cortex-M.
- Droped dg-skip-if.
Changes since v2:
- Generate .type and .global in the same block.
- Support different assembler syntax for "function" argument to .type.
Tested on top of r16-7849-g1f9879e17466f5 for arm-none-eabi and
x86_64-pc-linux-gnu with success.
Ok for trunk?
--
gcc/testsuite/ChangeLog:
PR testsuite/124320
* gcc.dg/lto/toplevel-extended-asm-1_0.c: Adjust inline
assembler for arm-none-eabi.
Signed-off-by: Torbjörn SVENSSON <[email protected]>
---
.../gcc.dg/lto/toplevel-extended-asm-1_0.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-1_0.c
b/gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-1_0.c
index 341d95ae0d5..c1d2fc56b9c 100644
--- a/gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-1_0.c
+++ b/gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-1_0.c
@@ -4,8 +4,22 @@
void asm_fn();
void asm_fn_used();
-asm(".global %cc0\n%cc0:" :: ":" (asm_fn));
-asm(".global %cc0\n%cc0:" :: ":" (asm_fn_used));
+#ifdef __ELF__
+#ifdef __sparc__
+#define TYPE_PFX "#"
+#elif defined (__arm__) || defined (__aarch64__)
+#define TYPE_PFX "%%"
+#else
+#define TYPE_PFX "@"
+#endif
+
+#define ASM_FUNCTION ".global %cc0\n\t.type %cc0, " TYPE_PFX "function\n%cc0:"
+#else
+#define ASM_FUNCTION ".global %cc0\n%cc0:"
+#endif
+
+asm(ASM_FUNCTION :: ":" (asm_fn));
+asm(ASM_FUNCTION :: ":" (asm_fn_used));
__attribute__((noinline))
--
2.43.0