re PR target/27230 (many obj-c++.dg tests ICE in rs6000_output_function_epilogue)

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
This commit is contained in:
Alan Modra 2006-04-21 01:52:13 +00:00 committed by Alan Modra
parent b74adad96b
commit 56438901a6
2 changed files with 13 additions and 3 deletions

View 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.

View 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;