aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/semantics.c
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2011-03-10 13:59:17 +0000
committerMartin Matuska <mm@FreeBSD.org>2011-03-10 13:59:17 +0000
commit0e5d163d93004259465517b8c58ecda57537d2f9 (patch)
treebd0b88102eb344ebbe4baf27724c362578cf50b6 /gcc/cp/semantics.c
parent497e80a371f70c0bdf4bf3ca609adaa065080794 (diff)
downloadsrc-0e5d163d93004259465517b8c58ecda57537d2f9.tar.gz
src-0e5d163d93004259465517b8c58ecda57537d2f9.zip
Vendor upgrade of gcc 4.2 to last GPLv2 revision.
PR: gnu/153298 Obtained from: gcc (gcc-4_2-branch, rev. 127959)
Notes
Notes: svn path=/vendor/gcc/dist/; revision=219451
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r--gcc/cp/semantics.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 8ad197858d0f..9c37b36cea34 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1320,8 +1320,13 @@ finish_label_stmt (tree name)
void
finish_label_decl (tree name)
{
- tree decl = declare_local_label (name);
- add_decl_expr (decl);
+ if (!at_function_scope_p ())
+ {
+ error ("__label__ declarations are only allowed in function scopes");
+ return;
+ }
+
+ add_decl_expr (declare_local_label (name));
}
/* When DECL goes out of scope, make sure that CLEANUP is executed. */