OSDN Git Service

PR target/26453
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Feb 2006 06:30:51 +0000 (06:30 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Feb 2006 06:30:51 +0000 (06:30 +0000)
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
output traceback table for thunks.  Localise rs6000_stack_info call.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111415 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 692b082..919a75e 100644 (file)
@@ -1,3 +1,9 @@
+2006-02-24  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/26453
+       * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
+       output traceback table for thunks.  Localise rs6000_stack_info call.
+
 2006-02-23  Roger Sayle  <roger@eyesopen.com>
            Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
 2006-02-23  Roger Sayle  <roger@eyesopen.com>
            Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
index 2b69a48..2ca1b30 100644 (file)
@@ -15153,8 +15153,6 @@ static void
 rs6000_output_function_epilogue (FILE *file,
                                 HOST_WIDE_INT size ATTRIBUTE_UNUSED)
 {
 rs6000_output_function_epilogue (FILE *file,
                                 HOST_WIDE_INT size ATTRIBUTE_UNUSED)
 {
-  rs6000_stack_t *info = rs6000_stack_info ();
-
   if (! HAVE_epilogue)
     {
       rtx insn = get_last_insn ();
   if (! HAVE_epilogue)
     {
       rtx insn = get_last_insn ();
@@ -15225,13 +15223,14 @@ rs6000_output_function_epilogue (FILE *file,
      System V.4 Powerpc's (and the embedded ABI derived from it) use a
      different traceback table.  */
   if (DEFAULT_ABI == ABI_AIX && ! flag_inhibit_size_directive
      System V.4 Powerpc's (and the embedded ABI derived from it) use a
      different traceback table.  */
   if (DEFAULT_ABI == ABI_AIX && ! flag_inhibit_size_directive
-      && rs6000_traceback != traceback_none)
+      && rs6000_traceback != traceback_none && !current_function_is_thunk)
     {
       const char *fname = NULL;
       const char *language_string = lang_hooks.name;
       int fixed_parms = 0, float_parms = 0, parm_info = 0;
       int i;
       int optional_tbtab;
     {
       const char *fname = NULL;
       const char *language_string = lang_hooks.name;
       int fixed_parms = 0, float_parms = 0, parm_info = 0;
       int i;
       int optional_tbtab;
+      rs6000_stack_t *info = rs6000_stack_info ();
 
       if (rs6000_traceback == traceback_full)
        optional_tbtab = 1;
 
       if (rs6000_traceback == traceback_full)
        optional_tbtab = 1;