mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-15 16:30:26 +08:00
re PR c++/10432 (ICE in poplevel, at cp/decl.c:1230)
PR c++/10432 * cp-tree.h (finish_declarator): Remove. * decl.c (cp_finish_decl): Make sure to pop_nested_class even for erroneous declarations. * semantics.c (finish_declarator): Remove. PR c++/10432 * g++.dg/parse/error1.C: New test. From-SVN: r67804
This commit is contained in:
parent
04953ac986
commit
df7f7b9c76
@ -1,3 +1,11 @@
|
||||
2003-06-11 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/10432
|
||||
* cp-tree.h (finish_declarator): Remove.
|
||||
* decl.c (cp_finish_decl): Make sure to pop_nested_class even for
|
||||
erroneous declarations.
|
||||
* semantics.c (finish_declarator): Remove.
|
||||
|
||||
2003-06-11 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* decl2.c (generate_ctor_or_dtor_function): Avoid expanding a
|
||||
|
@ -4118,7 +4118,6 @@ extern tree finish_unary_op_expr (enum tree_code, tree);
|
||||
extern tree finish_compound_literal (tree, tree);
|
||||
extern tree finish_fname (tree);
|
||||
extern int begin_function_definition (tree, tree, tree);
|
||||
extern tree finish_declarator (tree, tree, tree, tree, int);
|
||||
extern void finish_translation_unit (void);
|
||||
extern tree finish_template_type_parm (tree, tree);
|
||||
extern tree finish_template_template_parm (tree, tree);
|
||||
|
@ -8023,7 +8023,7 @@ cp_finish_decl (tree decl, tree init, tree asmspec_tree, int flags)
|
||||
type = TREE_TYPE (decl);
|
||||
|
||||
if (type == error_mark_node)
|
||||
return;
|
||||
goto finish_end0;
|
||||
|
||||
if (TYPE_HAS_MUTABLE_P (type))
|
||||
TREE_READONLY (decl) = 0;
|
||||
|
@ -1739,21 +1739,6 @@ begin_function_definition (decl_specs, attributes, declarator)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Finish an init-declarator. Returns a DECL. */
|
||||
|
||||
tree
|
||||
finish_declarator (declarator, declspecs, attributes,
|
||||
prefix_attributes, initialized)
|
||||
tree declarator;
|
||||
tree declspecs;
|
||||
tree attributes;
|
||||
tree prefix_attributes;
|
||||
int initialized;
|
||||
{
|
||||
return start_decl (declarator, declspecs, initialized, attributes,
|
||||
prefix_attributes);
|
||||
}
|
||||
|
||||
/* Finish a translation unit. */
|
||||
|
||||
void
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-06-11 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/10432
|
||||
* g++.dg/parse/error1.C: New test.
|
||||
|
||||
2003-06-11 Janis Johnson <janis187@us.ibm.com>
|
||||
|
||||
* gcc.dg/compat/struct-by-value-11_main.c: New file.
|
||||
|
6
gcc/testsuite/g++.dg/parse/error1.C
Normal file
6
gcc/testsuite/g++.dg/parse/error1.C
Normal file
@ -0,0 +1,6 @@
|
||||
struct INCOMPLETE;
|
||||
template <int> struct X {
|
||||
static INCOMPLETE value;
|
||||
};
|
||||
template <> INCOMPLETE X<1>::value = 0; // { dg-error "" }
|
||||
|
Loading…
Reference in New Issue
Block a user