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


Reply via email to