https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88258
Bug ID: 88258 Summary: [9 Regression] Infinite loop emitting diagnostics in the C++ front-end Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: openmp Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20181125 snapshot (r266441) enters infinite loop when compiling gcc/testsuite/gcc.dg/gomp/_Atomic-3.c w/ -fopenmp: % timeout 0.0072 g++-9.0.0-alpha20181125 -fopenmp -c gcc/testsuite/gcc.dg/gomp/_Atomic-3.c gcc/testsuite/gcc.dg/gomp/_Atomic-3.c: In function 'void f1()': gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:8:3: error: '_Atomic' was not declared in this scope 8 | _Atomic int i = 0, k[4]; | ^~~~~~~ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:10:3: error: 'k' was not declared in this scope 10 | k[0] = 0; | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:14:37: error: 'i' has not been declared 14 | #pragma omp parallel reduction (+:i) /* { dg-error "'_Atomic' 'i' in 'reduction' clause" } */ | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:15:5: error: 'i' was not declared in this scope 15 | i++; | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:16:39: error: '_Atomic' does not name a type 16 | #pragma omp declare reduction (foo: _Atomic int: omp_out += omp_in) initializer (omp_priv = omp_orig * 0) /* { dg-error "'_Atomic' qualified type in '#pragma omp declare reduction'" } */ | ^~~~~~~ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:16:46: error: expected ':' before 'int' 16 | #pragma omp declare reduction (foo: _Atomic int: omp_out += omp_in) initializer (omp_priv = omp_orig * 0) /* { dg-error "'_Atomic' qualified type in '#pragma omp declare reduction'" } */ | ^~~~ | : gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:20:39: error: 'i' has not been declared 20 | #pragma omp parallel reduction (bar:i) /* { dg-error "'_Atomic' 'i' in 'reduction' clause" } */ | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:21:5: error: 'i' was not declared in this scope 21 | i++; | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c: At global scope: gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:29:18: error: expected ',' or '...' before 'p' 29 | f2 (int *_Atomic p) | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c: In function 'void f2(int*)': gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:31:29: error: 'p' has not been declared 31 | #pragma omp simd aligned (p : 16) /* { dg-error "'_Atomic' 'p' in 'aligned' clause" } */ | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:33:5: error: 'p' was not declared in this scope 33 | p[i]++; | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c: At global scope: gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:36:1: error: '_Atomic' does not name a type 36 | _Atomic int x; | ^~~~~~~ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:39:13: error: variable or field 'f3' declared void 39 | f3 (_Atomic int *p) | ^~~ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:39:5: error: '_Atomic' was not declared in this scope 39 | f3 (_Atomic int *p) | ^~~~~~~ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:42:27: error: expected unqualified-id before end of line 42 | #pragma omp atomic write | ^ gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:42:27: error: expected unqualified-id before end of line gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:42:27: error: expected unqualified-id before end of line gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:42:27: error: expected unqualified-id before end of line gcc/testsuite/gcc.dg/gomp/_Atomic-3.c:42:27: error: expected unqualified-id before end of line <…> Program received signal SIGINT, Interrupt. 0x00007ffff7ada988 in write () from /lib64/libc.so.6 (gdb) where #0 0x00007ffff7ada988 in write () from /lib64/libc.so.6 #1 0x00007ffff7a70d0d in _IO_file_write () from /lib64/libc.so.6 #2 0x00007ffff7a6ff83 in new_do_write () from /lib64/libc.so.6 #3 0x00007ffff7a7154e in _IO_file_xsputn () from /lib64/libc.so.6 #4 0x00007ffff7a63c15 in fputs () from /lib64/libc.so.6 #5 0x000000000183d0e4 in pp_write_text_to_stream (pp=pp@entry=0x247dbc0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/pretty-print.c:840 #6 0x000000000183d169 in pp_flush (pp=0x247dbc0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/pretty-print.c:1467 #7 pp_flush (pp=0x247dbc0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/pretty-print.c:1462 #8 0x0000000001829e8a in diagnostic_report_diagnostic (context=0x2438e60 <global_diagnostic_context>, diagnostic=0x7fffffffc9a0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/diagnostic.c:1020 #9 0x000000000182a1de in diagnostic_impl (richloc=richloc@entry=0x7fffffffcba0, opt=opt@entry=-1, gmsgid=gmsgid@entry=0x24cff20 "expected unqualified-id before end of line", ap=ap@entry=0x7fffffffca20, kind=kind@entry=DK_ERROR) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/diagnostic.c:1138 #10 0x000000000182be16 in error_at (richloc=richloc@entry=0x7fffffffcba0, gmsgid=gmsgid@entry=0x24cff20 "expected unqualified-id before end of line") at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/diagnostic.c:1440 #11 0x0000000000a42e04 in c_parse_error (gmsgid=<optimized out>, token_type=<optimized out>, value=<optimized out>, token_flags=<optimized out>, richloc=0x7fffffffcba0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/c-family/c-common.c:6112 #12 0x000000000091bdf4 in cp_parser_error_1 (parser=0x7ffff7fcfab0, gmsgid=0x18c1d5b "expected unqualified-id", missing_token_desc=RT_NONE, matching_location=0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:2901 #13 0x0000000000943281 in cp_parser_unqualified_id (parser=0x7ffff7fcfab0, template_keyword_p=<optimized out>, check_dependency_p=<optimized out>, declarator_p=<optimized out>, optional_p=<optimized out>) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:6185 #14 0x000000000094022e in cp_parser_declarator_id (optional_p=false, parser=0x7ffff7fcfab0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:21419 #15 cp_parser_direct_declarator (friend_p=<optimized out>, member_p=<optimized out>, ctor_dtor_or_conv_p=0x7fffffffcf7c, dcl_kind=CP_PARSER_DECLARATOR_NAMED, parser=0x7ffff7fcfab0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:20696 #16 cp_parser_declarator (parser=0x7ffff7fcfab0, dcl_kind=CP_PARSER_DECLARATOR_NAMED, ctor_dtor_or_conv_p=0x7fffffffcf7c, parenthesized_p=<optimized out>, member_p=false, friend_p=false) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:20366 #17 0x000000000094e24f in cp_parser_init_declarator (parser=0x7ffff7fcfab0, decl_specifiers=0x7fffffffd060, checks=0x0, function_definition_allowed_p=<optimized out>, member_p=<optimized out>, declares_class_or_enum=0, function_definition_p=0x7fffffffd050, maybe_range_for_decl=0x0, init_loc=0x7fffffffd04c, auto_result=0x7fffffffd058) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:19881 #18 0x0000000000930f40 in cp_parser_simple_declaration (parser=0x7ffff7fcfab0, function_definition_allowed_p=<optimized out>, maybe_range_for_decl=0x0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:13390 #19 0x000000000095596e in cp_parser_declaration (parser=0x7ffff7fcfab0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:13087 #20 0x00000000009560ff in cp_parser_translation_unit (parser=0x7ffff7fcfab0) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:4674 #21 c_parse_file () at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/cp/parser.c:40680 #22 0x0000000000a6193c in c_common_parse_file () at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/c-family/c-opts.c:1151 #23 0x0000000000f07f3f in compile_file () at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/toplev.c:456 #24 0x000000000081663c in do_compile () at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/toplev.c:2176 #25 toplev::main (this=this@entry=0x7fffffffd426, argc=<optimized out>, argc@entry=15, argv=<optimized out>, argv@entry=0x7fffffffd528) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/toplev.c:2311 #26 0x0000000000819cbf in main (argc=15, argv=0x7fffffffd528) at /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/main.c:39