https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106981
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org Summary|[OpenACC] ICE in decompose, |[OpenACC][OpenMP] ICE in |at wide-int.h:984 with |decompose, at |'#pragma acc atomic |wide-int.h:984 with |capture' |'#pragma omp/acc atomic | |capture' Keywords| |openmp --- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- It actually fails in the same way with "-fopenmp" and 'acc' replaced by 'omp': long long n = 100; void test1(int x, double *a, double *b, double *c, double *totals) { #pragma omp atomic capture c[x] = totals[x%((int)(n/10 + 1))] = (a[x] + b[x]) + totals[x%((int) n/10 + 1)]; } I also missed to include the invoking part of the of stacktrace: ... 0x9848a2 c_tree_equal(tree_node*, tree_node*) ../../repos/gcc/gcc/c/c-typeck.cc:16197 0x9b3fd9 c_parser_binary_expression ../../repos/gcc/gcc/c/c-parser.cc:8085 0x9b40de c_parser_conditional_expression ../../repos/gcc/gcc/c/c-parser.cc:7653 0x9b49f6 c_parser_expr_no_commas ../../repos/gcc/gcc/c/c-parser.cc:7567 0x9c4189 c_parser_omp_atomic ../../repos/gcc/gcc/c/c-parser.cc:18992 0x9d7bcf c_parser_omp_construct ../../repos/gcc/gcc/c/c-parser.cc:23309 0x9acb3c c_parser_pragma ../../repos/gcc/gcc/c/c-parser.cc:12700 0x9cddff c_parser_compound_statement_nostart ../../repos/gcc/gcc/c/c-parser.cc:5800