http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58703
Bug ID: 58703 Summary: [4.9 Regression] ICE with invalid types in OpenMP declare reduction clause Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org The following invalid code snippet (compiled with "-fopenmp") triggers an ICE on trunk: ==================================================================== #pragma omp declare reduction (+ : char[] : omp_out += omp_in) #pragma omp declare reduction (+ : char() : omp_out += omp_in) ==================================================================== bug.cc:1:36: error: function or array type 'char []' in '#pragma omp declare reduction' #pragma omp declare reduction (+ : char[] : omp_out += omp_in) ^ bug.cc:2:36: error: function or array type 'char()' in '#pragma omp declare reduction' #pragma omp declare reduction (+ : char() : omp_out += omp_in) ^ bug.cc:2:63: internal compiler error: in cp_parser_translation_unit, at cp/parser.c:4019 #pragma omp declare reduction (+ : char() : omp_out += omp_in) ^ 0x66b3b0 cp_parser_translation_unit ../../gcc/gcc/cp/parser.c:4018 0x66b3b0 c_parse_file() ../../gcc/gcc/cp/parser.c:30962 0x787f73 c_common_parse_file() ../../gcc/gcc/c-family/c-opts.c:1046 Please submit a full bug report, [etc.]