From 56438901a68ebd4ae50ec6d8b590e7d83ae3b92c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 21 Apr 2006 01:52:13 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 8 ++++++++ gcc/config/rs6000/rs6000.c | 8 +++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 020cb63d219..c5507d2c6e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2006-04-21 Alan Modra + + 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 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 7e18f6d43de..e373e687f59 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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;