diff options
| author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-19 21:07:24 +0000 |
|---|---|---|
| committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-19 21:07:24 +0000 |
| commit | 1a361d3efefa04669e1fee3502d24e39b7b14e71 (patch) | |
| tree | 5861a1bb1ac543a2762679aef288e1adb7e494e8 /gcc | |
| parent | 2d05094ae9a891ffd1f68802987c7dd9d387ce5e (diff) | |
| download | ppe42-gcc-1a361d3efefa04669e1fee3502d24e39b7b14e71.tar.gz ppe42-gcc-1a361d3efefa04669e1fee3502d24e39b7b14e71.zip | |
* decl.c (init_decl_processing): Correct name of pure virtual
function under the new ABI.
* rtti.c (throw_bad_cast): Likewise, for bad cast function.
(throw_bad_typeid): Likewise for bad typeid function.
* libsupc++/exception_support.cc (__throw_bad_cast): Name it
__cxa_bad_cast under the new ABI.
(__throw_bad_typeid): Name it __cxa_bad_typeid under the new ABI.
* libsupc++/pure.cc (__pure_virtual): Name it __cxa_pure_virtual
under the new ABI.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37575 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/cp/decl.c | 5 | ||||
| -rw-r--r-- | gcc/cp/rtti.c | 8 |
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0fb019deda4..7886ddca74a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2000-11-19 Mark Mitchell <mark@codesourcery.com> + + * decl.c (init_decl_processing): Correct name of pure virtual + function under the new ABI. + * rtti.c (throw_bad_cast): Likewise, for bad cast function. + (throw_bad_typeid): Likewise for bad typeid function. + 2000-11-18 Mark Mitchell <mark@codesourcery.com> * decl.c (grokparms): Don't even function types of `void' type, diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index d6419303c2c..380b734551e 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -6656,7 +6656,10 @@ init_decl_processing () } abort_fndecl - = build_library_fn_ptr ("__pure_virtual", void_ftype); + = build_library_fn_ptr ((flag_new_abi + ? "__cxa_pure_virtual" + : "__pure_virtual"), + void_ftype); /* Perform other language dependent initializations. */ init_class_processing (); diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index f172c5fe667..3a54fc4753d 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -182,7 +182,9 @@ build_headof (exp) static tree throw_bad_cast () { - tree fn = get_identifier ("__throw_bad_cast"); + tree fn = get_identifier (flag_new_abi + ? "__cxa_bad_cast" : + "__throw_bad_cast"); if (IDENTIFIER_GLOBAL_VALUE (fn)) fn = IDENTIFIER_GLOBAL_VALUE (fn); else @@ -195,7 +197,9 @@ throw_bad_cast () static tree throw_bad_typeid () { - tree fn = get_identifier ("__throw_bad_typeid"); + tree fn = get_identifier (flag_new_abi + ? "__cxa_bad_typeid" + : "__throw_bad_typeid"); if (IDENTIFIER_GLOBAL_VALUE (fn)) fn = IDENTIFIER_GLOBAL_VALUE (fn); else |

