summaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-04 08:50:16 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-04 08:50:16 +0000
commit936a2e9997c17980d64de4f3b8df8523d1cec71d (patch)
treea4457c9b814187c23d71f350171cee587b2e158d /gcc/cp/decl.c
parent17bb68a794c0ad76d656d233822ef27f9b32b05c (diff)
downloadgcc-936a2e9997c17980d64de4f3b8df8523d1cec71d.tar.gz
* decl.c (start_cleanup_fn): Clear interface_only before
start_function, restore it afterwards. * g++.dg/other/cxa-atexit1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56790 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index bb0abbdf83f..f3b4d8756cc 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -8445,6 +8445,7 @@ static tree
start_cleanup_fn ()
{
static int counter = 0;
+ int old_interface_only = interface_only;
int old_interface_unknown = interface_unknown;
char name[32];
tree parmtypes;
@@ -8456,6 +8457,7 @@ start_cleanup_fn ()
/* No need to mangle this. */
push_lang_context (lang_name_c);
+ interface_only = 0;
interface_unknown = 1;
/* Build the parameter-types. */
@@ -8496,6 +8498,7 @@ start_cleanup_fn ()
start_function (/*specs=*/NULL_TREE, fndecl, NULL_TREE, SF_PRE_PARSED);
interface_unknown = old_interface_unknown;
+ interface_only = old_interface_only;
pop_lang_context ();