mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 01:40:04 +08:00
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
This commit is contained in:
parent
9837dc8d68
commit
23ccd1f3be
@ -1,3 +1,8 @@
|
||||
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 ();
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
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.
|
||||
|
26
gcc/testsuite/g++.dg/other/cxa-atexit1.C
Normal file
26
gcc/testsuite/g++.dg/other/cxa-atexit1.C
Normal file
@ -0,0 +1,26 @@
|
||||
// { 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_" } }
|
Loading…
Reference in New Issue
Block a user