aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2002-09-22 17:38:24 +0000
committerJason Merrill <jason@redhat.com>2002-09-22 17:38:24 +0000
commitd0c55a36117c3e4ec3565d7592ad3852a8d39c91 (patch)
tree24096cea1f375a02eb6787c2cd94880650608402
parent13c7e0c4df57de8e3c02d1fceda9c99014744580 (diff)
don't wrap a LABEL_EXPR in a wfl.bnw-simple-branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/bnw-simple-branch@57409 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/c-simplify.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/c-simplify.c b/gcc/c-simplify.c
index c7c327b0344..2a9d4bfa009 100644
--- a/gcc/c-simplify.c
+++ b/gcc/c-simplify.c
@@ -289,7 +289,11 @@ wrap_with_wfl (stmt_p)
/* Put the line note inside the loop, for the benefit of debugging
and gcov. */
stmt_p = &LOOP_EXPR_BODY (*stmt_p);
- if (TREE_CODE (*stmt_p) != EXPR_WITH_FILE_LOCATION)
+ if (TREE_CODE (*stmt_p) == LABEL_EXPR)
+ /* Don't emit a line note for a label. We particularly don't want to
+ emit one for the break label, since it doesn't actually correspond
+ to the beginning of the loop/switch. */;
+ else if (TREE_CODE (*stmt_p) != EXPR_WITH_FILE_LOCATION)
{
*stmt_p = build_expr_wfl (*stmt_p, wfl_filename, wfl_lineno, 0);
EXPR_WFL_EMIT_LINE_NOTE (*stmt_p) = 1;
@@ -616,6 +620,7 @@ begin_bc_block (bc)
enum bc_t bc;
{
tree label = build_decl (LABEL_DECL, ctxp->bc_id[bc], NULL_TREE);
+ DECL_ARTIFICIAL (label) = 1;
DECL_CONTEXT (label) = current_function_decl;
TREE_CHAIN (label) = ctxp->current_bc_label;
ctxp->current_bc_label = label;