https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120049

--- Comment #18 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
Some fall out after the commit. This may be an unrelated regression on 16.

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