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

Reply via email to