From: Jakub Jelinek Date: Tue, 10 Aug 2021 16:01:23 +0000 (+0200) Subject: openmp: Fix up cp/parser.c build with GCC 4.8 to 6 X-Git-Tag: basepoints/gcc-13~5472 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d796cc7a3e719cc36f1851ca322e2877b974691b;p=thirdparty%2Fgcc.git openmp: Fix up cp/parser.c build with GCC 4.8 to 6 Christophe Lyon reported that cp/parser.c no longer compiles with GCC 4.8.5 after my recent OpenMP changes. A goto out; there crosses odsd variable declaration, and odsd has a vec<...> member where vec has = default; default constructor and gcc before r7-2822-gd0b0fbd9fce2f30a82558bf2308b3a7b56c2f364 treated that as error. Fixed by moving the declaration earlier before the goto. Tested on x86_64-linux with GCC 4.8.5 system gcc, committed to trunk as obvious. 2021-08-10 Jakub Jelinek * parser.c (cp_parser_member_declaration): Move odsd declaration before cp_parser_using_declaration call to avoid errors with GCC 4.8 to 6. --- diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 34be15e9189c..1be42a1a776f 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -26651,8 +26651,9 @@ cp_parser_member_declaration (cp_parser* parser) parser->colon_corrects_to_scope_p = false; + cp_omp_declare_simd_data odsd; if (cp_parser_using_declaration (parser, /*access_declaration=*/true)) - goto out; + goto out; /* Parse the decl-specifier-seq. */ decl_spec_token_start = cp_lexer_peek_token (parser->lexer); @@ -26662,7 +26663,6 @@ cp_parser_member_declaration (cp_parser* parser) &decl_specifiers, &declares_class_or_enum); - cp_omp_declare_simd_data odsd; if (decl_specifiers.attributes && (flag_openmp || flag_openmp_simd)) cp_parser_handle_directive_omp_attributes (parser, &decl_specifiers.attributes,