Commit b9c87401 by Steven Bosscher

re PR c++/11595 (crash on duplicate label definition)

	PR c++/11595
	* decl.c (define_label): Remove unreachable timevar pop.
	Always return the decl, even if the definition is invalid.

From-SVN: r71138
parent d85a0aae
2003-09-06 Steven Bosscher <steven@gcc.gnu.org>
PR c++/11595
* decl.c (define_label): Remove unreachable timevar pop.
Always return the decl, even if the definition is invalid.
2003-09-06 Nathan Sidwell <nathan@codesourcery.com>
PR c++/12167
......
......@@ -4937,8 +4937,7 @@ check_goto (tree decl)
}
/* Define a label, specifying the location in the source file.
Return the LABEL_DECL node for the label, if the definition is valid.
Otherwise return 0. */
Return the LABEL_DECL node for the label. */
tree
define_label (location_t location, tree name)
......@@ -4961,10 +4960,7 @@ define_label (location_t location, tree name)
pedwarn ("label named wchar_t");
if (DECL_INITIAL (decl) != NULL_TREE)
{
error ("duplicate label `%D'", decl);
POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
error ("duplicate label `%D'", decl);
else
{
/* Mark label as having been defined. */
......@@ -4977,9 +4973,10 @@ define_label (location_t location, tree name)
ent->binding_level = current_binding_level;
}
check_previous_gotos (decl);
POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
}
timevar_pop (TV_NAME_LOOKUP);
return decl;
}
struct cp_switch
......
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