aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2010-09-28 13:44:58 -0700
committerRichard Henderson <rth@gcc.gnu.org>2010-09-28 13:44:58 -0700
commitf0a0390e691ece0d859b7d87c6e6617d227cb8dd (patch)
treeabc0f2fe4784df2eb251f4c04a0493fec3eac91d /gcc/cp
parentc165dca7efdb3f4bdae82c01b409a6b9cf4dbd65 (diff)
downloadgcc-f0a0390e691ece0d859b7d87c6e6617d227cb8dd.zip
gcc-f0a0390e691ece0d859b7d87c6e6617d227cb8dd.tar.gz
gcc-f0a0390e691ece0d859b7d87c6e6617d227cb8dd.tar.bz2
Hookize TARGET_UNWIND_INFO et al.
From-SVN: r164701
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/Make-lang.in2
-rw-r--r--gcc/cp/cp-lang.c22
3 files changed, 19 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a1806fc..095ac2e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2010-09-28 Richard Henderson <rth@redhat.com>
+
+ * cp-lang.c: Include "target.h".
+ (cp_eh_personality): Use targetm.except_unwind_info.
+ * Make-lang.in (cp-lang.o): Update deps.
+
2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
* parser.c (cp_parser_objc_valid_prefix_attributes): New.
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index a2d34e3..35736ca 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -250,7 +250,7 @@ cp/lex.o: cp/lex.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) \
$(C_PRAGMA_H) toplev.h output.h input.h cp/operators.def $(TM_P_H)
cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) $(TM_H) toplev.h debug.h langhooks.h \
$(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-cp.h gt-cp-cp-lang.h \
- cp/cp-objcp-common.h $(EXPR_H)
+ cp/cp-objcp-common.h $(EXPR_H) $(TARGET_H)
cp/decl.o: cp/decl.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) cp/decl.h \
output.h toplev.h $(HASHTAB_H) $(RTL_H) \
cp/operators.def $(TM_P_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(C_PRAGMA_H) \
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index fb687b8..0b70444 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "debug.h"
#include "cp-objcp-common.h"
#include "hashtab.h"
+#include "target.h"
enum c_language_kind c_language = clk_cxx;
static void cp_init_ts (void);
@@ -165,16 +166,17 @@ cp_eh_personality (void)
{
if (!cp_eh_personality_decl)
{
- if (!pragma_java_exceptions)
- cp_eh_personality_decl
- = build_personality_function (USING_SJLJ_EXCEPTIONS
- ? "__gxx_personality_sj0"
- : "__gxx_personality_v0");
- else
- cp_eh_personality_decl
- = build_personality_function (USING_SJLJ_EXCEPTIONS
- ? "__gcj_personality_sj0"
- : "__gcj_personality_v0");
+ const char *name;
+
+ name = (targetm.except_unwind_info () == UI_SJLJ
+ ? (pragma_java_exceptions
+ ? "__gcj_personality_sj0"
+ : "__gxx_personality_sj0")
+ : (pragma_java_exceptions
+ ? "__gcj_personality_v0"
+ : "__gxx_personality_v0"));
+
+ cp_eh_personality_decl = build_personality_function (name);
}
return cp_eh_personality_decl;