aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2010-10-13 11:57:31 -0700
committerRichard Henderson <rth@gcc.gnu.org>2010-10-13 11:57:31 -0700
commitbde8a146a602d86483dff9a5b0a9f34419ab3d32 (patch)
tree3c1d073f5371ed3d1591b0a5f61b529b6c5b86af /gcc/ada
parentd1655e0b38cecbdeed551818b2406fcb39919ba7 (diff)
downloadgcc-bde8a146a602d86483dff9a5b0a9f34419ab3d32.zip
gcc-bde8a146a602d86483dff9a5b0a9f34419ab3d32.tar.gz
gcc-bde8a146a602d86483dff9a5b0a9f34419ab3d32.tar.bz2
Centralize knowledge of eh personality routines.
From-SVN: r165433
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gcc-interface/misc.c6
-rw-r--r--gcc/ada/raise-gcc.c8
3 files changed, 12 insertions, 9 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 3fd613a..df5b433 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2010-10-13 Richard Henderson <rth@redhat.com>
+
+ * gcc-interface/misc.c (gnat_eh_personality): Update call to
+ build_personality_function.
+ * raise-gcc.c (PERSONALITY_FUNCTION): Change to match other languages;
+ use__gnat_personality_{v,sj}0.
+
2010-10-12 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Add_Source): Put source in hash table Source_Files_HT
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index 7703e2e..a1b2490 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -687,11 +687,7 @@ static tree
gnat_eh_personality (void)
{
if (!gnat_eh_personality_decl)
- gnat_eh_personality_decl
- = build_personality_function (targetm.except_unwind_info () == UI_SJLJ
- ? "__gnat_eh_personality_sj"
- : "__gnat_eh_personality");
-
+ gnat_eh_personality_decl = build_personality_function ("gnat");
return gnat_eh_personality_decl;
}
diff --git a/gcc/ada/raise-gcc.c b/gcc/ada/raise-gcc.c
index 3589bc5..512ff36 100644
--- a/gcc/ada/raise-gcc.c
+++ b/gcc/ada/raise-gcc.c
@@ -407,7 +407,7 @@ db_phases (int phases)
===================================
The major point of this unit is to provide an exception propagation
- personality routine for Ada. This is __gnat_eh_personality.
+ personality routine for Ada. This is __gnat_personality_v0.
It is provided with a pointer to the propagated exception, an unwind
context describing a location the propagation is going through, and a
@@ -440,7 +440,7 @@ db_phases (int phases)
|
| (Ada frame)
|
- +--> __gnat_eh_personality (context, exception)
+ +--> __gnat_personality_v0 (context, exception)
|
+--> get_region_descriptor_for (context)
|
@@ -1028,9 +1028,9 @@ extern void __gnat_notify_unhandled_exception (void);
GNU-Ada exceptions are met. */
#ifdef __USING_SJLJ_EXCEPTIONS__
-#define PERSONALITY_FUNCTION __gnat_eh_personality_sj
+#define PERSONALITY_FUNCTION __gnat_personality_sj0
#else
-#define PERSONALITY_FUNCTION __gnat_eh_personality
+#define PERSONALITY_FUNCTION __gnat_personality_v0
#endif
/* Major tweak for ia64-vms : the CHF propagation phase calls this personality