Hi, Thomas Actually, yes, AIX does allow dereference of a NULL pointer.
Thanks, David On Fri, Nov 27, 2020 at 9:15 AM Thomas Schwinge <tho...@codesourcery.com> wrote: > > Hi David! > > On 2020-11-24T15:29:17-0500, David Edelsohn via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > On Tue, Nov 24, 2020 at 5:19 AM Thomas Schwinge <tho...@codesourcery.com> > > wrote: > >> On 2020-11-21T10:50:10-0500, David Edelsohn <dje....@gmail.com> wrote: > >> > I see > >> > > >> > "during GIMPLE pass: omplower" > >> > > >> > message for kernels-decompose-ice-2.c. kernels-decompose-ice-1.c > >> > explicitly prunes that output, but kernels-decompose-ice-2.c does not. > >> > Is there a reason that the second testcase does not prune that output > >> > or can we add it? > >> > >> So, the expectation (as verified by my x86_64-pc-linux-gnu and > >> powerpc64le-unknown-linux-gnu testing) is that > >> 'c-c++-common/goacc/kernels-decompose-ice-1.c' (currently) runs into an > >> ICE "during GIMPLE pass: omplower", and > >> 'c-c++-common/goacc/kernels-decompose-ice-2.c' (currently) runs into an > >> ICE "during GIMPLE pass: omp_oacc_kernels_decompose". > >> > >> Now, you're reporting that for the latter testcase you're instead also > >> seeing an ICE "during GIMPLE pass: omplower". Can you please show the > >> full ICE report/backtrace, so that we verify that it's not yet another > >> separate issue? > > On gcc119 ('uname -a': "AIX power8-aix 2 7 00F9C1964C00"), I've now also > reproduced the issue. > > >> Maybe the AIX system configuration (ABI?) > >> mandates/causes some slight difference in how front ends set attributes > >> such as 'TREE_ADDRESSABLE' on DECLs, which 'omp_oacc_kernels_decompose' > >> (currently) is sensitive to (hence the ICEs). > > That's not the case; the input into 'omp_oacc_kernels_decompose' seems to > be exactly the same as on other systems. > > > The error messages reported on AIX are: > > > > Executing on host: /tmp/GCC/gcc/xgcc -B/tmp/GCC/gcc/ > > /nasfarm/edelsohn/src/src/gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c > > -fdiagnostics-plain-output -fopenacc -fopenacc-kernels=decompose -S > > -o kernels-decompose-ice-2.s (timeout = 300) > > spawn -ignore SIGHUP /tmp/GCC/gcc/xgcc -B/tmp/GCC/gcc/ > > /nasfarm/edelsohn/src/src/gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c > > -fdiagnostics-plain-output -fopenacc -fopenacc-kernels=decompose -S -o > > kernels-decompose-ice-2.s > > during GIMPLE pass: omplower > > /nasfarm/edelsohn/src/src/gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c: > > In function 'main': > > /nasfarm/edelsohn/src/src/gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c:13:9: > > internal compiler error: in lower_omp_target, at omp-low.c:12216 > > That's indeed the location of the 'gcc_assert' responsible for the > 'omplower' ICE, which currently is expected, if we don't run into the > 'omp_oacc_kernels_decompose' ICE first. It's still strange however, why > we're seeing this "for AIX" (not better classified) only: I suppose it > isn't a feature "of AIX" that it can dereference a 'NULL' pointer ;-) -- > which is what seems to be happening here: > > 742 gimple_seq inner_sequence = gimple_bind_body > (inner_bind); > (gdb) next > 743 gcc_assert (gimple_code (inner_sequence) != GIMPLE_BIND > (gdb) print inner_sequence > $1 = (gimple_seq) 0x0 > (gdb) next > 745 gimple_seq_add_seq (&new_body, inner_sequence); > > So we have 'inner_sequence == NULL', and yet the 'next' didn't trigger a > SIGSEGV in: > > static inline enum gimple_code > gimple_code (const gimple *g) > { > return g->code; > } > > Strange, isn't it? > > > However: this issue should now (indirectly) be fixed via "In > 'gcc/omp-oacc-kernels-decompose.cc:flatten_binds', don't choke on empty > GIMPLE sequence" that I've just pushed to master branch in commit > 4b5726fda653d11f882fb9a112e4cffa12f7ed61. > > > > during GIMPLE pass: omplower > > /nasfarm/edelsohn/src/src/gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c: > > In function 'main': > > /nasfarm/edelsohn/src/src/gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c:13:9: > > internal compiler error: in lower_omp_target, at omp-low.c:12216 > > ranges offset out of range > > That last line actually comes from here: > > libbacktrace/dwarf.c: error_callback (data, "ranges offset out of > range", 0); > > > Grüße > Thomas > ----------------- > Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany > Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, > Alexander Walter