From d0740edfaa3a85f24113d5544ae2133a2353bea6 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Thu, 24 Feb 2011 10:22:04 +0000 Subject: [PATCH] Allow declarations after labels in C++ mode. [r28441] --- parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/parser.c b/parser.c index 6d44cd4..b4d4bb9 100644 --- a/parser.c +++ b/parser.c @@ -9337,7 +9337,8 @@ static statement_t *parse_label_inner_statement(statement_t const *const label, default: inner_stmt = parse_statement(); - if (inner_stmt->kind == STATEMENT_DECLARATION) { + /* ISO/IEC 14882:1998(E) §6:1/§6.7 Declarations are statements */ + if (inner_stmt->kind == STATEMENT_DECLARATION && !(c_mode & _CXX)) { errorf(&inner_stmt->base.source_position, "declaration after %s", label_kind); } break; -- 2.20.1