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

            Bug ID: 126798
           Summary: [17 Regression] ICE on invalid use of ASSOCIATE
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jvdelisle at gcc dot gnu.org
  Target Milestone: ---

F2023:C1105 requires that an ASSOCIATE selector be neither a
designator of a procedure pointer nor a function reference that
returns a procedure pointer.  gfortran diagnoses the first case but
not the second, and since GCC 17 it ICEs on it instead.

program p
  associate (a => getp())
  end associate
contains
  function getp() result(r)
    procedure(real), pointer :: r
    r => null()
  end function
end program

gfc new-ice-bug.f90 
new-ice-bug.f90:1:9:

    1 | program p
      |         ^
Error: invalid types in conversion to floating-point
real(kind=4)
real(kind=4) (*<T69d>) ()
a = (real(kind=4)) _1;
new-ice-bug.f90:1:9: internal compiler error: ‘verify_gimple’ failed
0x26f4edf internal_error(char const*, ...)
        ../../trunk/gcc/diagnostic-global-context.cc:787
0xfa0e6a verify_gimple_in_seq(gimple*, bool)
        ../../trunk/gcc/tree-cfg.cc:5216
0xbda64a gimplify_body(tree_node*, bool)
        ../../trunk/gcc/gimplify.cc:21906
0xbda88e gimplify_function_tree(tree_node*)
        ../../trunk/gcc/gimplify.cc:22032
0x97795f cgraph_node::analyze()
        ../../trunk/gcc/cgraphunit.cc:691
0x97a827 analyze_functions
        ../../trunk/gcc/cgraphunit.cc:1270
0x97b8c2 symbol_table::finalize_compilation_unit()
        ../../trunk/gcc/cgraphunit.cc:2593
/home/jerry/dev/usr/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/f951 new-ice-bug.f90
-quiet -dumpdir a- -dumpbase new-ice-bug.f90 -dumpbase-ext .f90 -mtune=generic
-march=x86-64 -fintrinsic-modules-path
/home/jerry/dev/usr/lib/gcc/x86_64-pc-linux-gnu/17.0.0/finclude
-fpre-include=/usr/include/finclude/math-vector-fortran.h -o /tmp/ccOCNSgV.s

Reply via email to