OSDN Git Service

Backport from 2013-07-11 trunk r200901.
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jul 2013 08:50:09 +0000 (08:50 +0000)
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jul 2013 08:50:09 +0000 (08:50 +0000)
PR target/57631
* config/avr/avr.c (avr_set_current_function): Sanity-check signal
name seen by assembler/linker if available.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@200903 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/avr/avr.c

index 907e3b7..cca738f 100644 (file)
@@ -1,3 +1,11 @@
+2013-07-11  Georg-Johann Lay  <avr@gjlay.de>
+
+       Backport from 2013-07-11 trunk r200901.
+
+       PR target/57631
+       * config/avr/avr.c (avr_set_current_function): Sanity-check signal
+       name seen by assembler/linker if available.
+
 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
 
        Backport from 2013-07-10 trunk r200872.
index bac87e8..93a4cc2 100644 (file)
@@ -549,7 +549,12 @@ avr_set_current_function (tree decl)
     {
       tree args = TYPE_ARG_TYPES (TREE_TYPE (decl));
       tree ret = TREE_TYPE (TREE_TYPE (decl));
-      const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
+      const char *name;
+
+      name = DECL_ASSEMBLER_NAME_SET_P (decl)
+        /* Remove the leading '*' added in set_user_assembler_name.  */
+        ? 1 + IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
+        : IDENTIFIER_POINTER (DECL_NAME (decl));
       
       /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
          using this when it switched from SIGNAL and INTERRUPT to ISR.  */