diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-11-19 21:07:24 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-11-19 21:07:24 +0000 |
commit | 2650255a57477be0a966f3d3af0c0b71a0e52f0f (patch) | |
tree | 5861a1bb1ac543a2762679aef288e1adb7e494e8 /gcc | |
parent | b7ac5370c28ab2edd426f5f7b3432b7b323962cf (diff) | |
download | gcc-2650255a57477be0a966f3d3af0c0b71a0e52f0f.zip gcc-2650255a57477be0a966f3d3af0c0b71a0e52f0f.tar.gz gcc-2650255a57477be0a966f3d3af0c0b71a0e52f0f.tar.bz2 |
decl.c (init_decl_processing): Correct name of pure virtual function under the new ABI.
* 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.
From-SVN: r37575
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 0fb019d..7886ddc 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 d641930..380b734 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 f172c5f..3a54fc4 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 |