On 5/6/25 10:59 AM, Steve Kargl wrote:
On Tue, May 06, 2025 at 07:43:41PM +0200, Harald Anlauf wrote:
the new logic misses the following bad code:
print *, c_associated(c_loc(val), 42)
This now ICEs here.
I suggest to not 'return true' too early before all arguments
have been checked.
Good catch, Harald. We probably need to check c_ptr_2 first
if it is present.
As I began to explore this I had just backported our original patch to
15 branch to do more testing. On 15 I do not get the ICE Harald is
seeing but it is on 16.
Here I see on 16:
$ gfc test.f90
test.f90:5:21:
5 | program tests_gtk_sup
| ^
Error: mismatching comparison operand types
void *
integer(kind=4)
_2 = D.4648 == 42;
test.f90:5:21: internal compiler error: ‘verify_gimple’ failed
0x22ba961 internal_error(char const*, ...)
../../trunk/gcc/diagnostic-global-context.cc:517
0xe4833e verify_gimple_in_seq(gimple*, bool)
../../trunk/gcc/tree-cfg.cc:5345
0xac296a gimplify_body(tree_node*, bool)
../../trunk/gcc/gimplify.cc:20916
0xac2ba5 gimplify_function_tree(tree_node*)
../../trunk/gcc/gimplify.cc:21042
0x8d12c7 cgraph_node::analyze()
../../trunk/gcc/cgraphunit.cc:689
0x8d3e47 analyze_functions
../../trunk/gcc/cgraphunit.cc:1265
0x8d4dfd symbol_table::finalize_compilation_unit()
../../trunk/gcc/cgraphunit.cc:2574
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
The ICE is somewhere else.
Harald's test case works fine on 15 with the original patch.
$ ls
gtk_sup.f90 gtk_sup.mod gtk_sup.o test.f90
$ rm gtk_sup.mod
$ rm gtk_sup.o
$ gfc15 -c gtk_sup.f90
$ gfc15 test.f90
$ ./a.out
F