This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/84448] New: [6/7/8 Regression] ICE with broken condition in parallel for loop
- From: "reichelt at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 18 Feb 2018 21:24:27 +0000
- Subject: [Bug c++/84448] New: [6/7/8 Regression] ICE with broken condition in parallel for loop
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84448
Bug ID: 84448
Summary: [6/7/8 Regression] ICE with broken condition in
parallel for loop
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Keywords: error-recovery, ice-on-invalid-code, openmp
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: reichelt at gcc dot gnu.org
Target Milestone: ---
The following invalid code snippet (compiled with "-fopenmp")
triggers an ICE since GCC 6.1.0:
=================================================
struct A
{
operator int() const;
A& operator +=(int);
A& operator ++();
};
void foo(A a, A b)
{
#pragma omp for
for (A i = a; i <=; ++i)
;
}
=================================================
bug.cc: In function 'void foo(A, A)':
bug.cc:11:21: error: expected primary-expression before ';' token
for (A i = a; i <=; ++i)
^
bug.cc:12:5: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in element_mode, at tree.c:12977
;
^
0x78a73c tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
../../gcc/gcc/tree.c:9385
0x7901e2 tree_class_check(tree_node const*, tree_code_class, char const*, int,
char const*)
../../gcc/gcc/tree.h:3511
0x7901e2 element_mode(tree_node const*)
../../gcc/gcc/tree.c:12977
0xe17198 HONOR_NANS(tree_node const*)
../../gcc/gcc/real.c:5095
0xbe8d2c fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc/gcc/fold-const.c:11132
0xbecd0a fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc/gcc/fold-const.c:12328
0xbe4155 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc/gcc/fold-const.c:9310
0xc00bec fold(tree_node*)
../../gcc/gcc/fold-const.c:11965
0x86803a cp_fold
../../gcc/gcc/cp/cp-gimplify.c:2280
0x868e0c cp_fold_maybe_rvalue
../../gcc/gcc/cp/cp-gimplify.c:2006
0x9a75f7 handle_omp_for_class_iterator
../../gcc/gcc/cp/semantics.c:7665
0x9a75f7 finish_omp_for(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*, tree_node*, tree_node*, tree_node*, tree_node*, vec<tree_node*,
va_heap, vl_ptr>*, tree_node*)
../../gcc/gcc/cp/semantics.c:8138
0x917251 cp_parser_omp_for_loop
../../gcc/gcc/cp/parser.c:35164
0x93d7d3 cp_parser_omp_for
../../gcc/gcc/cp/parser.c:35362
0x918d34 cp_parser_omp_construct
../../gcc/gcc/cp/parser.c:38080
0x919c27 cp_parser_pragma
../../gcc/gcc/cp/parser.c:38707
0x91c1ec cp_parser_statement
../../gcc/gcc/cp/parser.c:10877
0x91cdc0 cp_parser_statement_seq_opt
../../gcc/gcc/cp/parser.c:11255
0x91ce97 cp_parser_compound_statement
../../gcc/gcc/cp/parser.c:11209
0x933610 cp_parser_function_body
../../gcc/gcc/cp/parser.c:21750
Please submit a full bug report, [etc.]