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

            Bug ID: 90786
           Summary: ICE on procedure pointer assignment to function with
                    class pointer result
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: abensonca at gmail dot com
  Target Milestone: ---

The following causes an ICE on trunk:

module f
procedure(c), pointer :: c_ 

 type :: s 
 end type s 

contains 

 function c() 
   implicit none 
   class(s), pointer ::  c 
   c => null() 
   return 
 end function c 

 subroutine fs() 
   implicit none 
   c_ => c 
   return 
 end subroutine fs 

end module f



$ gfortran -c tmp.F90 -o tmp.o 
tmp.F90:18:0: 

  18 |     c_ => c 
     |  
internal compiler error: tree check: expected record_type or union_type or
qual_union_type, have function_type in gfc_class_data_get, at
fortran/trans-expr.c:191 
0x71c0f0 tree_check_failed(tree_node const*, char const*, int, char const*,
...) 
       ../../gcc-trunk/gcc/tree.c:9900 
0x5d791d tree_check3(tree_node*, char const*, int, char const*, tree_code,
tree_code, tree_code) 
       ../../gcc-trunk/gcc/tree.h:3220
0x5d791d gfc_class_data_get(tree_node*)
        ../../gcc-trunk/gcc/fortran/trans-expr.c:191
0x8feec1 gfc_trans_pointer_assignment(gfc_expr*, gfc_expr*)
        ../../gcc-trunk/gcc/fortran/trans-expr.c:8898
0x8b70d2 trans_code
        ../../gcc-trunk/gcc/fortran/trans.c:1833
0x8e393b gfc_generate_function_code(gfc_namespace*)
        ../../gcc-trunk/gcc/fortran/trans-decl.c:6655
0x8bb4a1 gfc_generate_module_code(gfc_namespace*)
        ../../gcc-trunk/gcc/fortran/trans.c:2219
0x86b095 translate_all_program_units
        ../../gcc-trunk/gcc/fortran/parse.c:6121
0x86b095 gfc_parse_file()
        ../../gcc-trunk/gcc/fortran/parse.c:6337
0x8b43ef gfc_be_parse_file
        ../../gcc-trunk/gcc/fortran/f95-lang.c:204
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/home/abenson/Galacticus/Tools
--enable-languages=c,c++,fortran --disable-multilib
Thread model: posix
gcc version 10.0.0 20190501 (experimental) (GCC) 



Possibly related to PR86242?

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

Reply via email to