re PR target/27230 (many obj-c++.dg tests ICE in rs6000_output_function_epilogue)
authorAlan Modra <amodra@bigpond.net.au>
Fri, 21 Apr 2006 01:52:13 +0000 (01:52 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Fri, 21 Apr 2006 01:52:13 +0000 (11:22 +0930)
PR target/27230
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
C++ lang type in traceback table for Objective-C++.

* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.

From-SVN: r113130

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

index 020cb63d219ecbb6ca194aa7b19d947f4f079a69..c5507d2c6e280335eca0c5a2659b0b0f6bc3f1f8 100644 (file)
@@ -1,3 +1,11 @@
+2006-04-21  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/27230
+       * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
+       C++ lang type in traceback table for Objective-C++.
+
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
+
 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
index 7e18f6d43de076384a4d75efb9f91a7fa6b7d21d..e373e687f59ad2e11308892a8c285f5e04bfa3cb 100644 (file)
@@ -5963,7 +5963,7 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
       if ((n_reg == 2 && reg != gpr) || n_reg > 2)
        {
          /* Ensure that we don't find any more args in regs.
-            Alignment has taken care of the n_reg == 2 case.  */
+            Alignment has taken care of the n_reg == 2 gpr case.  */
          t = build2 (MODIFY_EXPR, TREE_TYPE (reg), reg, size_int (8));
          gimplify_and_add (t, pre_p);
        }
@@ -15326,7 +15326,8 @@ rs6000_output_function_epilogue (FILE *file,
         official way to discover the language being compiled, so we
         use language_string.
         C is 0.  Fortran is 1.  Pascal is 2.  Ada is 3.  C++ is 9.
-        Java is 13.  Objective-C is 14.  */
+        Java is 13.  Objective-C is 14.  Objective-C++ isn't assigned
+        a number, so for now use 9.  */
       if (! strcmp (language_string, "GNU C"))
        i = 0;
       else if (! strcmp (language_string, "GNU F77")
@@ -15336,7 +15337,8 @@ rs6000_output_function_epilogue (FILE *file,
        i = 2;
       else if (! strcmp (language_string, "GNU Ada"))
        i = 3;
-      else if (! strcmp (language_string, "GNU C++"))
+      else if (! strcmp (language_string, "GNU C++")
+              || ! strcmp (language_string, "GNU Objective-C++"))
        i = 9;
       else if (! strcmp (language_string, "GNU Java"))
        i = 13;