diff options
author | Geoffrey Keating <geoffk@apple.com> | 2005-03-04 20:17:11 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@apple.com> | 2005-03-04 20:17:11 +0000 |
commit | 8fb36317f1b3cd85655af61504bb31bf33364dd1 (patch) | |
tree | 0eb2bbc4dad75d90f41114820f3ee7088d24961c /gcc/cp/init.c | |
parent | e7205ceb9c1707750c7ea129d8087eb1a9c685dc (diff) |
Merge changes between apple-ppc-merge-20041026 and apple-gcc-4049
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@95897 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r-- | gcc/cp/init.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 4ad5e62c4ac..ebac6d77df4 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2837,6 +2837,16 @@ build_delete (tree type, tree addr, special_function_kind auto_delete, build_op_delete_call (DELETE_EXPR, addr, cxx_sizeof_nowarn (type), /*global_p=*/false, NULL_TREE); } + /* APPLE LOCAL begin KEXT double destructor --matt 20020501 */ + /* If we're compiling a class in kext compatibility mode we + don't have a non-deleting destructor, so we unconditionally + generate a reference to the deleting variety. */ + if (flag_apple_kext && has_apple_kext_compatibility_attr_p (type)) + { + gcc_assert (auto_delete != sfk_base_destructor); + auto_delete = sfk_deleting_destructor; + } + /* APPLE LOCAL end KEXT double destructor --matt 20020501 */ expr = build_dtor_call (build_indirect_ref (addr, NULL), auto_delete, flags); |