[Bug lto/84592] [openacc,openmp] lto1: ICE in input_varpool_node, at lto-cgraph.c:1424: for CSWTCH symbol
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 28 14:41:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84592
--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
So it's equivalent to:
$ cat ~/Programming/testcases/pr84592-3.c
#include <stdio.h>
int
main (void)
{
int n[1];
n[0] = 4;
#pragma omp target
{
static const int test[] = {1,2,3,4};
n[1] += test[n[0]];
}
printf ("n: %d\n", n[0]);
return 0;
}
$ /tmp/install/usr/local/bin/x86_64-pc-linux-gnu-gcc
~/Programming/testcases/pr84592-3.c -fopenmp
setting in_other_partition: test.2531: 1
test: 1
lto1: internal compiler error: in input_varpool_node, at lto-cgraph.c:1427
0x9840dc input_varpool_node
/home/marxin/Programming/gcc2/gcc/lto-cgraph.c:1425
0x9840dc input_cgraph_1
/home/marxin/Programming/gcc2/gcc/lto-cgraph.c:1547
0x9840dc input_symtab()
/home/marxin/Programming/gcc2/gcc/lto-cgraph.c:1861
0x609f90 read_cgraph_and_symbols
/home/marxin/Programming/gcc2/gcc/lto/lto.c:2891
0x609f90 lto_main()
/home/marxin/Programming/gcc2/gcc/lto/lto.c:3356
It's logically not supported as I guess you have 2 versions of the pragma body
and thus 2 variables are expected. Proper fix would be to disable the pass in
case of an offloading is used.
And it's questionable whether an error should be printed for the test-case
above.
More information about the Gcc-bugs
mailing list