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 <jakub@redhat.com>
* parser.c (cp_parser_member_declaration): Move odsd declaration
before cp_parser_using_declaration call to avoid errors with
GCC 4.8 to 6.
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);
&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,