This patch replaces a hardcoded "." of local label prefix with
LOCAL_LABEL_PREFIX macro in the ARM backend (generating a "trampoline" in
thumb mode).
The patch also contains a new test to make sure that the local label
".Ltrampoline_start:" is generated correctly.
No regressions on arm-none-eabi.
-- Greta
gcc/Changelog:
2011-05-13 Greta Yorsh <[email protected]>
* config/arm/arm.c: Replace hardcoded "." of local label prefix
with LOCAL_LABEL_PREFIX macro.
gcc/testsuite/ChangeLog:
2011-05-13 Greta Yorsh <[email protected]>
* gcc.target/arm/trampoline-1.c: New test, to make sure
the local label ".Ltrampoline" is generated correctly.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 4f9c2aa..6216b49 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -2066,7 +2066,7 @@ arm_asm_trampoline_template (FILE *f)
{
ASM_OUTPUT_ALIGN (f, 2);
fprintf (f, "\t.code\t16\n");
- fprintf (f, ".Ltrampoline_start:\n");
+ fprintf (f, "%sLtrampoline_start:\n", LOCAL_LABEL_PREFIX);
asm_fprintf (f, "\tpush\t{r0, r1}\n");
asm_fprintf (f, "\tldr\tr0, [%r, #8]\n", PC_REGNUM);
asm_fprintf (f, "\tmov\t%r, r0\n", STATIC_CHAIN_REGNUM);
diff --git a/gcc/testsuite/gcc.target/arm/trampoline-1.c
b/gcc/testsuite/gcc.target/arm/trampoline-1.c
new file mode 100644
index 0000000..212e7ee
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/trampoline-1.c
@@ -0,0 +1,19 @@
+/* { dg-options "-mcpu=arm7tdmi -mthumb" } */
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_eabi } */
+/* { dg-require-effective-target arm_thumb1_ok } */
+
+void
+foo(int a)
+{
+ int
+ gee(void)
+ {
+ return a;
+ }
+ extern int bar(int (*)(void));
+ bar(&gee);
+
+}
+
+/* { dg-final { scan-assembler ".Ltrampoline_start:" } } */