class.c (duplicate_tag_error): Clear more flags.
cp: * class.c (duplicate_tag_error): Clear more flags. testsuite: * g++.old_deja/g++.other/crash39.C: New test. From-SVN: r38867
This commit is contained in:
parent
042b4c4e4d
commit
fd3f43e7a5
@ -1,3 +1,7 @@
|
|||||||
|
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
|
* class.c (duplicate_tag_error): Clear more flags.
|
||||||
|
|
||||||
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* call.c (build_new_method_call): Use binfo_for_vbase.
|
* call.c (build_new_method_call): Use binfo_for_vbase.
|
||||||
|
@ -2374,6 +2374,26 @@ duplicate_tag_error (t)
|
|||||||
TYPE_VFIELD (t) = NULL_TREE;
|
TYPE_VFIELD (t) = NULL_TREE;
|
||||||
TYPE_CONTEXT (t) = NULL_TREE;
|
TYPE_CONTEXT (t) = NULL_TREE;
|
||||||
TYPE_NONCOPIED_PARTS (t) = NULL_TREE;
|
TYPE_NONCOPIED_PARTS (t) = NULL_TREE;
|
||||||
|
|
||||||
|
TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = 0;
|
||||||
|
TYPE_HAS_CONSTRUCTOR (t) = 0;
|
||||||
|
TYPE_HAS_DESTRUCTOR (t) = 0;
|
||||||
|
TYPE_HAS_CONVERSION (t) = 0;
|
||||||
|
TYPE_HAS_ASSIGN_REF (t) = 0;
|
||||||
|
TYPE_HAS_CONST_ASSIGN_REF (t) = 0;
|
||||||
|
TYPE_HAS_INIT_REF (t) = 0;
|
||||||
|
TYPE_HAS_CONST_INIT_REF (t) = 0;
|
||||||
|
TYPE_HAS_NEW_OPERATOR (t) = 0;
|
||||||
|
TYPE_HAS_ARRAY_NEW_OPERATOR (t) = 0;
|
||||||
|
TYPE_HAS_DEFAULT_CONSTRUCTOR (t) = 0;
|
||||||
|
CLASSTYPE_HAS_MUTABLE (t) = 0;
|
||||||
|
CLASSTYPE_NON_POD_P (t) = 0;
|
||||||
|
CLASSTYPE_NEARLY_EMPTY_P (t) = 0;
|
||||||
|
CLASSTYPE_NON_AGGREGATE (t) = 0;
|
||||||
|
TYPE_HAS_REAL_ASSIGN_REF (t) = 0;
|
||||||
|
TYPE_HAS_COMPLEX_ASSIGN_REF (t) = 0;
|
||||||
|
TYPE_HAS_ABSTRACT_ASSIGN_REF (t) = 0;
|
||||||
|
TYPE_HAS_COMPLEX_INIT_REF (t) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make the BINFO's vtablehave N entries, including RTTI entries,
|
/* Make the BINFO's vtablehave N entries, including RTTI entries,
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
|
* g++.old_deja/g++.other/crash39.C: New test.
|
||||||
|
|
||||||
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
2001-01-10 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* g++.old_deja/g++.other/vbase4.C: New test.
|
* g++.old_deja/g++.other/vbase4.C: New test.
|
||||||
|
18
gcc/testsuite/g++.old-deja/g++.other/crash39.C
Normal file
18
gcc/testsuite/g++.old-deja/g++.other/crash39.C
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Build don't link:
|
||||||
|
|
||||||
|
// Copyright (C) 2000 Free Software Foundation, Inc.
|
||||||
|
// Contributed by Nathan Sidwell 10 Jan 2001 <nathan@codesourcery.com>
|
||||||
|
|
||||||
|
// Bug 595. We failed to clear out some things after seeing a duplicate
|
||||||
|
// struct definition. That caused us to become inconsistent.
|
||||||
|
|
||||||
|
struct X
|
||||||
|
{
|
||||||
|
~X ();
|
||||||
|
};
|
||||||
|
struct S { X a; }; // ERROR - previous defn
|
||||||
|
struct S { X a; }; // ERROR - redefinition
|
||||||
|
|
||||||
|
void c1(S s)
|
||||||
|
{
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user