Commit 23ccd1f3 by Jakub Jelinek Committed by Jakub Jelinek

decl.c (start_cleanup_fn): Clear interface_only before start_function, restore it afterwards.

	* decl.c (start_cleanup_fn): Clear interface_only before
	start_function, restore it afterwards.

	* g++.dg/other/cxa-atexit1.C: New test.

From-SVN: r56790
parent 9837dc8d
2002-09-04 Jakub Jelinek <jakub@redhat.com>
* decl.c (start_cleanup_fn): Clear interface_only before
start_function, restore it afterwards.
2002-08-31 Jason Merrill <jason@redhat.com>
* cp-lang.c (cp_expr_size): Allow initialization from a
......
......@@ -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 ();
......
2002-09-04 Jakub Jelinek <jakub@redhat.com>
* g++.dg/other/cxa-atexit1.C: New test.
2002-09-03 Neil Booth <neil@daikokuya.co.uk>
* gcc.dg/cpp/_Pragma4.c: New test.
......
// { dg-do compile }
// { dg-options "-O2 -fuse-cxa-atexit" }
# 1 "cxa-atexit1.C"
struct A
{
struct B
{
B ();
~B ();
};
};
static A::B b;
# 1 "cxa-atexit1.h" 1
#pragma interface
template <class T> struct C
{
~C (void);
};
struct D : public C<bool>
{
D (void) : C<bool> () { }
};
# 55 "cxa-atexit1.C" 2
// { dg-final { scan-assembler-not ".gnu.linkonce.t.__tcf_" } }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment