iains / gcc-darwin-arm64

GCC master branch for Darwin with experimental support for Arm64. Currently GCC-15.0.0 [September 2024]
GNU General Public License v2.0
269 stars 33 forks source link

Fortran class allocation #9

Closed fxcoudert closed 4 years ago

fxcoudert commented 4 years ago

I've run about 15% of the gfortran testsuite so far, and I get relatively few failures. The ones I got are all related to handling and allocation of classes. One example is:

$ cat allocate_with_source_7.f08 
program test
  type P
    class(*), allocatable :: X(:)
  end type
  Type(P) Y
  integer, parameter :: arr(1) = (/ 5 /)

  allocate(Y%X, source=arr)
end
$ ./bin/gfortran allocate_with_source_7.f08 && ./a.out

Program received signal SIGBUS: Access to an undefined portion of a memory object.

Backtrace for this error:

Could not print backtrace: libbacktrace could not find executable to open
#0  0x102ca0747
#1  0x102c9f7bb
#2  0x1d2bf9c83
#3  0x102c87d4b
zsh: bus error  ./a.out

The code generated for the allocate statement is generating undefined access. I can't quite figure out how this happens, exactly. Also, the backtrace is useless — not sure why.

iains commented 4 years ago

a) there's no guarantee that the calling ABI is correct b) I have been successful in building a stage 1 compiler with debug and using LLDB to do simple debug c) libbacktrace might require some work .. dunno how much is generic. sorry that's not more helpful .. if you can find some specific place that the call to a library function has the wrong argument list or similar, then we can fix that (it's a question of going through each case and finding a work-around that is good for both normal and variadic fns).

iains commented 4 years ago

d) would we expect the allocation to end in a call to malloc? (that ought to work reliably, I'd think - it's not a variadic fn) e) If there's any code that has baked in assumptions about page size being 4096, that will need to be fixed (the page size here is 16384, AFAICT). it would be good to find out which part of the process is failing if debugging is possible.

fxcoudert commented 4 years ago

I will debug further. The current test results, with a non-bootstrap compiler, are:

Native configuration is aarch64-apple-darwin20

        === gfortran tests ===

Running target unix
FAIL: gfortran.dg/actual_array_offset_1.f90   -O0  execution test
FAIL: gfortran.dg/actual_array_offset_1.f90   -O1  execution test
FAIL: gfortran.dg/actual_array_offset_1.f90   -O2  execution test
FAIL: gfortran.dg/actual_array_offset_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/actual_array_offset_1.f90   -O3 -g  execution test
FAIL: gfortran.dg/actual_array_offset_1.f90   -Os  execution test
FAIL: gfortran.dg/alloc_comp_class_5.f03   -O0  execution test
FAIL: gfortran.dg/alloc_comp_class_5.f03   -O1  execution test
FAIL: gfortran.dg/alloc_comp_class_5.f03   -O2  execution test
FAIL: gfortran.dg/alloc_comp_class_5.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/alloc_comp_class_5.f03   -O3 -g  execution test
FAIL: gfortran.dg/alloc_comp_class_5.f03   -Os  execution test
FAIL: gfortran.dg/alloc_comp_deep_copy_1.f03   -O0  execution test
FAIL: gfortran.dg/alloc_comp_deep_copy_1.f03   -O1  execution test
FAIL: gfortran.dg/alloc_comp_deep_copy_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/alloc_comp_deep_copy_1.f03   -Os  execution test
FAIL: gfortran.dg/allocate_alloc_opt_10.f90   -O0  execution test
FAIL: gfortran.dg/allocate_alloc_opt_10.f90   -O1  execution test
FAIL: gfortran.dg/allocate_alloc_opt_10.f90   -O2  execution test
FAIL: gfortran.dg/allocate_alloc_opt_10.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_alloc_opt_10.f90   -O3 -g  execution test
FAIL: gfortran.dg/allocate_alloc_opt_10.f90   -Os  execution test
FAIL: gfortran.dg/allocate_class_3.f90   -O0  execution test
FAIL: gfortran.dg/allocate_class_3.f90   -O1  execution test
FAIL: gfortran.dg/allocate_class_3.f90   -O2  execution test
FAIL: gfortran.dg/allocate_class_3.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_class_3.f90   -O3 -g  execution test
FAIL: gfortran.dg/allocate_class_3.f90   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_11.f08   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_11.f08   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_11.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_11.f08   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_15.f03   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_15.f03   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_15.f03   -O2  execution test
FAIL: gfortran.dg/allocate_with_source_15.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_15.f03   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_15.f03   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_16.f90   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_16.f90   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_16.f90   -O2  execution test
WARNING: gfortran.dg/allocate_with_source_16.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/allocate_with_source_16.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_16.f90   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_16.f90   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_18.f03   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_18.f03   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_18.f03   -O2  execution test
WARNING: gfortran.dg/allocate_with_source_18.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/allocate_with_source_18.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_18.f03   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_18.f03   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_22.f03   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_22.f03   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_22.f03   -O2  execution test
FAIL: gfortran.dg/allocate_with_source_22.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_22.f03   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_22.f03   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_26.f90   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_26.f90   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_26.f90   -O2  execution test
FAIL: gfortran.dg/allocate_with_source_26.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_26.f90   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_26.f90   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_7.f08   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_7.f08   -O1  execution test
FAIL: gfortran.dg/allocate_with_source_7.f08   -O2  execution test
FAIL: gfortran.dg/allocate_with_source_7.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/allocate_with_source_7.f08   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_7.f08   -Os  execution test
FAIL: gfortran.dg/allocate_with_source_8.f08   -O0  execution test
FAIL: gfortran.dg/allocate_with_source_8.f08   -O1  execution test
WARNING: gfortran.dg/allocate_with_source_8.f08   -O2  execution test program timed out.
FAIL: gfortran.dg/allocate_with_source_8.f08   -O2  execution test
FAIL: gfortran.dg/allocate_with_source_8.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
WARNING: gfortran.dg/allocate_with_source_8.f08   -O3 -g  execution test program timed out.
FAIL: gfortran.dg/allocate_with_source_8.f08   -O3 -g  execution test
FAIL: gfortran.dg/allocate_with_source_8.f08   -Os  execution test
FAIL: gfortran.dg/associate_13.f90   -O0  execution test
FAIL: gfortran.dg/associate_13.f90   -O1  execution test
FAIL: gfortran.dg/associate_13.f90   -O2  execution test
WARNING: gfortran.dg/associate_13.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/associate_13.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/associate_13.f90   -O3 -g  execution test
FAIL: gfortran.dg/associate_13.f90   -Os  execution test
FAIL: gfortran.dg/associate_18.f08   -O0  execution test
FAIL: gfortran.dg/associate_18.f08   -O1  execution test
FAIL: gfortran.dg/associate_18.f08   -O2  execution test
FAIL: gfortran.dg/associate_18.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/associate_18.f08   -O3 -g  execution test
FAIL: gfortran.dg/associate_18.f08   -Os  execution test
FAIL: gfortran.dg/associate_46.f90   -O0  execution test
FAIL: gfortran.dg/associate_46.f90   -O1  execution test
FAIL: gfortran.dg/associate_46.f90   -O2  execution test
FAIL: gfortran.dg/associate_46.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/associate_46.f90   -O3 -g  execution test
FAIL: gfortran.dg/associate_46.f90   -Os  execution test
FAIL: gfortran.dg/associate_48.f90   -O0  execution test
FAIL: gfortran.dg/associate_48.f90   -O1  execution test
FAIL: gfortran.dg/associate_48.f90   -O2  execution test
FAIL: gfortran.dg/associate_48.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/associate_48.f90   -O3 -g  execution test
FAIL: gfortran.dg/associate_48.f90   -Os  execution test
FAIL: gfortran.dg/c_kind_params.f90   -O1  execution test
FAIL: gfortran.dg/c_kind_params.f90   -O2  execution test
FAIL: gfortran.dg/c_kind_params.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/c_kind_params.f90   -O3 -g  execution test
FAIL: gfortran.dg/c_kind_params.f90   -Os  execution test
FAIL: gfortran.dg/class_19.f03   -O0  execution test
FAIL: gfortran.dg/class_19.f03   -O1  execution test
FAIL: gfortran.dg/class_19.f03   -O2  execution test
FAIL: gfortran.dg/class_19.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_19.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_19.f03   -Os  execution test
FAIL: gfortran.dg/class_48.f90   -O0  execution test
WARNING: gfortran.dg/class_48.f90   -O1  execution test program timed out.
FAIL: gfortran.dg/class_48.f90   -O1  execution test
WARNING: gfortran.dg/class_48.f90   -O2  execution test program timed out.
FAIL: gfortran.dg/class_48.f90   -O2  execution test
WARNING: gfortran.dg/class_48.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_48.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
WARNING: gfortran.dg/class_48.f90   -O3 -g  execution test program timed out.
FAIL: gfortran.dg/class_48.f90   -O3 -g  execution test
WARNING: gfortran.dg/class_48.f90   -Os  execution test program timed out.
FAIL: gfortran.dg/class_48.f90   -Os  execution test
FAIL: gfortran.dg/class_62.f90   -O0  execution test
FAIL: gfortran.dg/class_62.f90   -O1  execution test
FAIL: gfortran.dg/class_62.f90   -O2  execution test
WARNING: gfortran.dg/class_62.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_62.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_62.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_62.f90   -Os  execution test
FAIL: gfortran.dg/class_63.f90   -O0  execution test
FAIL: gfortran.dg/class_63.f90   -O1  execution test
FAIL: gfortran.dg/class_63.f90   -Os  execution test
FAIL: gfortran.dg/class_66.f90   -O0  execution test
FAIL: gfortran.dg/class_66.f90   -O1  execution test
FAIL: gfortran.dg/class_66.f90   -O2  execution test
FAIL: gfortran.dg/class_66.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_66.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_66.f90   -Os  execution test
FAIL: gfortran.dg/class_67.f90   -O0  execution test
FAIL: gfortran.dg/class_67.f90   -O1  execution test
FAIL: gfortran.dg/class_67.f90   -O2  execution test
WARNING: gfortran.dg/class_67.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_67.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_67.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_67.f90   -Os  execution test
FAIL: gfortran.dg/class_70.f03   -O0  execution test
FAIL: gfortran.dg/class_70.f03   -O1  execution test
FAIL: gfortran.dg/class_70.f03   -O2  execution test
FAIL: gfortran.dg/class_70.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_70.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_70.f03   -Os  execution test
FAIL: gfortran.dg/class_9.f03   -O0  execution test
FAIL: gfortran.dg/class_9.f03   -O1  execution test
FAIL: gfortran.dg/class_9.f03   -O2  execution test
WARNING: gfortran.dg/class_9.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_9.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_9.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_9.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_1.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_1.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_1.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_1.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_1.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_10.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_10.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_10.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_10.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_10.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_10.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_11.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_11.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_11.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_11.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_11.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_11.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_12.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_12.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_12.f90   -O2  execution test
FAIL: gfortran.dg/class_allocate_12.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_13.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_13.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_13.f90   -O2  execution test
FAIL: gfortran.dg/class_allocate_13.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_13.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_13.f90   -Os  execution test
FAIL: gfortran.dg/class_allocate_18.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_18.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_18.f90   -Os  execution test
FAIL: gfortran.dg/class_allocate_19.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_19.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_19.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_19.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_19.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_19.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_20.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_20.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_20.f90   -O2  execution test
FAIL: gfortran.dg/class_allocate_20.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_20.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_20.f90   -Os  execution test
FAIL: gfortran.dg/class_allocate_21.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_21.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_21.f90   -O2  execution test
FAIL: gfortran.dg/class_allocate_21.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_21.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_21.f90   -Os  execution test
FAIL: gfortran.dg/class_allocate_22.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_22.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_22.f90   -O2  execution test
FAIL: gfortran.dg/class_allocate_22.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_22.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_22.f90   -Os  execution test
FAIL: gfortran.dg/class_allocate_23.f08   -O0  execution test
FAIL: gfortran.dg/class_allocate_23.f08   -O1  execution test
FAIL: gfortran.dg/class_allocate_23.f08   -O2  execution test
FAIL: gfortran.dg/class_allocate_23.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_23.f08   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_23.f08   -Os  execution test
FAIL: gfortran.dg/class_allocate_3.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_3.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_3.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_3.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_3.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_3.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_4.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_4.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_4.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_4.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_4.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_4.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_5.f90   -O0  execution test
FAIL: gfortran.dg/class_allocate_5.f90   -O1  execution test
FAIL: gfortran.dg/class_allocate_5.f90   -O2  execution test
FAIL: gfortran.dg/class_allocate_5.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_5.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_5.f90   -Os  execution test
FAIL: gfortran.dg/class_allocate_6.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_6.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_6.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_6.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_6.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_6.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_7.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_7.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_7.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_7.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_7.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_7.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_8.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_8.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_8.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_8.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_8.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_8.f03   -Os  execution test
FAIL: gfortran.dg/class_allocate_9.f03   -O0  execution test
FAIL: gfortran.dg/class_allocate_9.f03   -O1  execution test
FAIL: gfortran.dg/class_allocate_9.f03   -O2  execution test
FAIL: gfortran.dg/class_allocate_9.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_allocate_9.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_allocate_9.f03   -Os  execution test
FAIL: gfortran.dg/class_array_1.f03   -O0  execution test
FAIL: gfortran.dg/class_array_1.f03   -O1  execution test
FAIL: gfortran.dg/class_array_1.f03   -O2  execution test
WARNING: gfortran.dg/class_array_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_array_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_1.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_array_1.f03   -Os  execution test
FAIL: gfortran.dg/class_array_15.f03   -O0  execution test
WARNING: gfortran.dg/class_array_15.f03   -O1  execution test program timed out.
FAIL: gfortran.dg/class_array_15.f03   -O1  execution test
FAIL: gfortran.dg/class_array_15.f03   -O2  execution test
FAIL: gfortran.dg/class_array_15.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_15.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_array_15.f03   -Os  execution test
FAIL: gfortran.dg/class_array_2.f03   -O0  execution test
FAIL: gfortran.dg/class_array_2.f03   -O1  execution test
FAIL: gfortran.dg/class_array_2.f03   -O2  execution test
FAIL: gfortran.dg/class_array_2.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_2.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_array_2.f03   -Os  execution test
FAIL: gfortran.dg/class_array_20.f03   -O0  execution test
FAIL: gfortran.dg/class_array_20.f03   -O1  execution test
FAIL: gfortran.dg/class_array_20.f03   -O2  execution test
FAIL: gfortran.dg/class_array_20.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_20.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_array_20.f03   -Os  execution test
FAIL: gfortran.dg/class_array_21.f03   -O0  execution test
FAIL: gfortran.dg/class_array_21.f03   -O1  execution test
FAIL: gfortran.dg/class_array_21.f03   -O2  execution test
FAIL: gfortran.dg/class_array_21.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_21.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_array_21.f03   -Os  execution test
FAIL: gfortran.dg/class_array_3.f03   -O0  execution test
FAIL: gfortran.dg/class_array_3.f03   -O1  execution test
FAIL: gfortran.dg/class_array_3.f03   -O2  execution test
FAIL: gfortran.dg/class_array_3.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_3.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_array_3.f03   -Os  execution test
FAIL: gfortran.dg/class_array_9.f03   -O0  execution test
FAIL: gfortran.dg/class_array_9.f03   -O1  execution test
WARNING: gfortran.dg/class_array_9.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_array_9.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_array_9.f03   -Os  execution test
FAIL: gfortran.dg/class_assign_1.f08   -O0  execution test
FAIL: gfortran.dg/class_assign_1.f08   -O1  execution test
FAIL: gfortran.dg/class_assign_1.f08   -O2  execution test
FAIL: gfortran.dg/class_assign_1.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_assign_1.f08   -O3 -g  execution test
FAIL: gfortran.dg/class_assign_1.f08   -Os  execution test
FAIL: gfortran.dg/class_defined_operator_1.f03   -O0  execution test
FAIL: gfortran.dg/class_defined_operator_1.f03   -O1  execution test
FAIL: gfortran.dg/class_defined_operator_1.f03   -O2  execution test
FAIL: gfortran.dg/class_defined_operator_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_defined_operator_1.f03   -O3 -g  execution test
FAIL: gfortran.dg/class_defined_operator_1.f03   -Os  execution test
FAIL: gfortran.dg/class_nameclash.f90   -O0  execution test
FAIL: gfortran.dg/class_nameclash.f90   -O1  execution test
FAIL: gfortran.dg/class_nameclash.f90   -O2  execution test
WARNING: gfortran.dg/class_nameclash.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_nameclash.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_nameclash.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_nameclash.f90   -Os  execution test
FAIL: gfortran.dg/class_optional_1.f90   -O0  execution test
FAIL: gfortran.dg/class_optional_1.f90   -O1  execution test
FAIL: gfortran.dg/class_optional_1.f90   -O2  execution test
WARNING: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/class_optional_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_optional_1.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_optional_1.f90   -Os  execution test
FAIL: gfortran.dg/class_result_9.f90   -O0  execution test
FAIL: gfortran.dg/class_result_9.f90   -O1  execution test
FAIL: gfortran.dg/class_result_9.f90   -O2  execution test
FAIL: gfortran.dg/class_result_9.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_result_9.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_result_9.f90   -Os  execution test
FAIL: gfortran.dg/class_to_type_1.f03   -O0  execution test
FAIL: gfortran.dg/class_to_type_1.f03   -O1  execution test
FAIL: gfortran.dg/class_to_type_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_to_type_1.f03   -Os  execution test
FAIL: gfortran.dg/class_to_type_2.f90   -O0  execution test
FAIL: gfortran.dg/class_to_type_2.f90   -O1  execution test
FAIL: gfortran.dg/class_to_type_2.f90   -O2  execution test
FAIL: gfortran.dg/class_to_type_2.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_to_type_2.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_to_type_2.f90   -Os  execution test
FAIL: gfortran.dg/class_to_type_4.f90   -O0  execution test
FAIL: gfortran.dg/class_to_type_4.f90   -O1  execution test
FAIL: gfortran.dg/class_to_type_4.f90   -O2  execution test
FAIL: gfortran.dg/class_to_type_4.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/class_to_type_4.f90   -O3 -g  execution test
FAIL: gfortran.dg/class_to_type_4.f90   -Os  execution test
FAIL: gfortran.dg/coarray_40.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/coarray_41.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/coarray_42.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/coarray_allocate_2.f08   -O0  execution test
FAIL: gfortran.dg/coarray_allocate_2.f08   -O1  execution test
FAIL: gfortran.dg/coarray_allocate_2.f08   -O2  execution test
FAIL: gfortran.dg/coarray_allocate_2.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/coarray_allocate_2.f08   -O3 -g  execution test
FAIL: gfortran.dg/coarray_allocate_2.f08   -Os  execution test
FAIL: gfortran.dg/coarray_allocate_3.f08   -O0  execution test
FAIL: gfortran.dg/coarray_allocate_3.f08   -O1  execution test
FAIL: gfortran.dg/coarray_allocate_3.f08   -O2  execution test
FAIL: gfortran.dg/coarray_allocate_3.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/coarray_allocate_3.f08   -O3 -g  execution test
FAIL: gfortran.dg/coarray_allocate_3.f08   -Os  execution test
FAIL: gfortran.dg/coarray_allocate_4.f08   -O1  execution test
FAIL: gfortran.dg/coarray_allocate_4.f08   -O2  execution test
FAIL: gfortran.dg/coarray_allocate_4.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/coarray_allocate_4.f08   -O3 -g  execution test
FAIL: gfortran.dg/coarray_allocate_4.f08   -Os  execution test
FAIL: gfortran.dg/coarray_allocate_5.f08   -O0  execution test
FAIL: gfortran.dg/coarray_allocate_5.f08   -O1  execution test
FAIL: gfortran.dg/coarray_allocate_5.f08   -O2  execution test
FAIL: gfortran.dg/coarray_allocate_5.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/coarray_allocate_5.f08   -O3 -g  execution test
FAIL: gfortran.dg/coarray_allocate_5.f08   -Os  execution test
FAIL: gfortran.dg/coarray_lib_alloc_4.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/coarray_lib_comm_1.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/coarray_poly_9.f90   -O0  execution test
FAIL: gfortran.dg/coarray_poly_9.f90   -O1  execution test
FAIL: gfortran.dg/coarray_poly_9.f90   -O2  execution test
WARNING: gfortran.dg/coarray_poly_9.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/coarray_poly_9.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/coarray_poly_9.f90   -O3 -g  execution test
FAIL: gfortran.dg/coarray_poly_9.f90   -Os  execution test
FAIL: gfortran.dg/coarray_stat_2.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/coindexed_1.f90   -O3 -g  (test for excess errors)
FAIL: gfortran.dg/dependency_53.f90   -O0  execution test
FAIL: gfortran.dg/dependency_53.f90   -O1  execution test
FAIL: gfortran.dg/dependency_53.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/dependency_53.f90   -Os  execution test
FAIL: gfortran.dg/dtio_22.f90   -O0  execution test
FAIL: gfortran.dg/dtio_22.f90   -O1  execution test
FAIL: gfortran.dg/dtio_22.f90   -O2  execution test
FAIL: gfortran.dg/dtio_22.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/dtio_22.f90   -O3 -g  execution test
FAIL: gfortran.dg/dtio_22.f90   -Os  execution test
FAIL: gfortran.dg/dtio_27.f90   -O0  execution test
FAIL: gfortran.dg/dtio_27.f90   -O1  execution test
FAIL: gfortran.dg/dtio_27.f90   -O2  execution test
FAIL: gfortran.dg/dtio_27.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/dtio_27.f90   -O3 -g  execution test
FAIL: gfortran.dg/dtio_27.f90   -Os  execution test
FAIL: gfortran.dg/dtio_7.f90   -O0  execution test
FAIL: gfortran.dg/dtio_7.f90   -O1  execution test
WARNING: gfortran.dg/dtio_7.f90   -O2  execution test program timed out.
FAIL: gfortran.dg/dtio_7.f90   -O2  execution test
FAIL: gfortran.dg/dtio_7.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/dtio_7.f90   -O3 -g  execution test
WARNING: gfortran.dg/dtio_7.f90   -Os  execution test program timed out.
FAIL: gfortran.dg/dtio_7.f90   -Os  execution test
FAIL: gfortran.dg/elemental_dependency_4.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/elemental_dependency_4.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/elemental_optional_args_5.f03   -O0  execution test
FAIL: gfortran.dg/elemental_optional_args_5.f03   -O1  execution test
FAIL: gfortran.dg/elemental_optional_args_5.f03   -O2  execution test
FAIL: gfortran.dg/elemental_optional_args_5.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/elemental_optional_args_5.f03   -O3 -g  execution test
FAIL: gfortran.dg/elemental_optional_args_5.f03   -Os  execution test
FAIL: gfortran.dg/finalize_12.f90   -O0  execution test
WARNING: gfortran.dg/finalize_12.f90   -O1  execution test program timed out.
FAIL: gfortran.dg/finalize_12.f90   -O1  execution test
WARNING: gfortran.dg/finalize_12.f90   -O2  execution test program timed out.
FAIL: gfortran.dg/finalize_12.f90   -O2  execution test
FAIL: gfortran.dg/finalize_12.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
WARNING: gfortran.dg/finalize_12.f90   -O3 -g  execution test program timed out.
FAIL: gfortran.dg/finalize_12.f90   -O3 -g  execution test
WARNING: gfortran.dg/finalize_12.f90   -Os  execution test program timed out.
FAIL: gfortran.dg/finalize_12.f90   -Os  execution test
FAIL: gfortran.dg/finalize_13.f90   -O0  execution test
FAIL: gfortran.dg/finalize_13.f90   -O1  execution test
FAIL: gfortran.dg/finalize_13.f90   -O2  execution test
FAIL: gfortran.dg/finalize_13.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/finalize_13.f90   -O3 -g  execution test
FAIL: gfortran.dg/finalize_13.f90   -Os  execution test
FAIL: gfortran.dg/finalize_15.f90   -O0  execution test
FAIL: gfortran.dg/finalize_15.f90   -O1  execution test
FAIL: gfortran.dg/finalize_15.f90   -O2  execution test
FAIL: gfortran.dg/finalize_15.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/finalize_15.f90   -O3 -g  execution test
FAIL: gfortran.dg/finalize_15.f90   -Os  execution test
FAIL: gfortran.dg/finalize_29.f08   -O0  execution test
FAIL: gfortran.dg/finalize_29.f08   -O1  execution test
FAIL: gfortran.dg/finalize_29.f08   -O2  execution test
FAIL: gfortran.dg/finalize_29.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/finalize_29.f08   -O3 -g  execution test
FAIL: gfortran.dg/finalize_29.f08   -Os  execution test
FAIL: gfortran.dg/finalize_33.f90   -O0  execution test
FAIL: gfortran.dg/finalize_33.f90   -O1  execution test
FAIL: gfortran.dg/finalize_33.f90   -O2  execution test
FAIL: gfortran.dg/finalize_33.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/finalize_33.f90   -O3 -g  execution test
FAIL: gfortran.dg/finalize_33.f90   -Os  execution test
FAIL: gfortran.dg/finalize_36.f90   -O0  execution test
FAIL: gfortran.dg/finalize_36.f90   -O1  execution test
FAIL: gfortran.dg/finalize_36.f90   -O2  execution test
FAIL: gfortran.dg/finalize_36.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/finalize_36.f90   -O3 -g  execution test
FAIL: gfortran.dg/finalize_36.f90   -Os  execution test
FAIL: gfortran.dg/findloc_3.f90   -O0  execution test
FAIL: gfortran.dg/findloc_3.f90   -O1  execution test
FAIL: gfortran.dg/findloc_3.f90   -O2  execution test
FAIL: gfortran.dg/findloc_3.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/findloc_3.f90   -O3 -g  execution test
FAIL: gfortran.dg/findloc_3.f90   -Os  execution test
FAIL: gfortran.dg/findloc_6.f90   -O0  execution test
FAIL: gfortran.dg/findloc_6.f90   -O1  execution test
FAIL: gfortran.dg/findloc_6.f90   -O2  execution test
FAIL: gfortran.dg/findloc_6.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/findloc_6.f90   -O3 -g  execution test
FAIL: gfortran.dg/findloc_6.f90   -Os  execution test
FAIL: gfortran.dg/implicit_class_1.f90   -O0  execution test
FAIL: gfortran.dg/implicit_class_1.f90   -O1  execution test
FAIL: gfortran.dg/implicit_class_1.f90   -O2  execution test
WARNING: gfortran.dg/implicit_class_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/implicit_class_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/implicit_class_1.f90   -O3 -g  execution test
FAIL: gfortran.dg/implicit_class_1.f90   -Os  execution test
FAIL: gfortran.dg/internal_dummy_2.f08   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_2.f08   -O0  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_2.f08   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_2.f08   -O1  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_2.f08   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_2.f08   -O2  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_2.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_2.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_2.f08   -O3 -g  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_2.f08   -O3 -g  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_2.f08   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_2.f08   -Os  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_3.f08   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_3.f08   -O0  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_3.f08   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_3.f08   -O1  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_3.f08   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_3.f08   -O2  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_3.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_3.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_3.f08   -O3 -g  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_3.f08   -O3 -g  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_3.f08   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_3.f08   -Os  compilation failed to produce executable
FAIL: gfortran.dg/internal_dummy_4.f08   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/internal_dummy_4.f08   -O0  compilation failed to produce executable
FAIL: gfortran.dg/move_alloc_10.f90   -O0  execution test
FAIL: gfortran.dg/move_alloc_10.f90   -O1  execution test
WARNING: gfortran.dg/move_alloc_10.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/move_alloc_10.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/move_alloc_10.f90   -Os  execution test
FAIL: gfortran.dg/move_alloc_13.f90   -O0  execution test
FAIL: gfortran.dg/move_alloc_13.f90   -O1  execution test
FAIL: gfortran.dg/move_alloc_13.f90   -O2  execution test
WARNING: gfortran.dg/move_alloc_13.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/move_alloc_13.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/move_alloc_13.f90   -O3 -g  execution test
FAIL: gfortran.dg/move_alloc_13.f90   -Os  execution test
FAIL: gfortran.dg/move_alloc_6.f90   -O0  execution test
FAIL: gfortran.dg/move_alloc_6.f90   -O1  execution test
FAIL: gfortran.dg/move_alloc_6.f90   -O2  execution test
WARNING: gfortran.dg/move_alloc_6.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/move_alloc_6.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/move_alloc_6.f90   -O3 -g  execution test
FAIL: gfortran.dg/move_alloc_6.f90   -Os  execution test
FAIL: gfortran.dg/optional_class_1.f90   -O0  execution test
FAIL: gfortran.dg/optional_class_1.f90   -O1  execution test
FAIL: gfortran.dg/optional_class_1.f90   -O2  execution test
WARNING: gfortran.dg/optional_class_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/optional_class_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/optional_class_1.f90   -O3 -g  execution test
FAIL: gfortran.dg/optional_class_1.f90   -Os  execution test
FAIL: gfortran.dg/pdt_3.f03   -O0  execution test
FAIL: gfortran.dg/pdt_3.f03   -O1  execution test
FAIL: gfortran.dg/pdt_3.f03   -O2  execution test
FAIL: gfortran.dg/pdt_3.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pdt_3.f03   -O3 -g  execution test
FAIL: gfortran.dg/pdt_3.f03   -Os  execution test
FAIL: gfortran.dg/pointer_array_4.f90   -O0  execution test
FAIL: gfortran.dg/pointer_array_4.f90   -O1  execution test
FAIL: gfortran.dg/pointer_array_4.f90   -O2  execution test
WARNING: gfortran.dg/pointer_array_4.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/pointer_array_4.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pointer_array_4.f90   -O3 -g  execution test
FAIL: gfortran.dg/pointer_array_4.f90   -Os  execution test
FAIL: gfortran.dg/pointer_array_5.f90   -O0  execution test
FAIL: gfortran.dg/pointer_array_5.f90   -O1  execution test
FAIL: gfortran.dg/pointer_array_5.f90   -O2  execution test
FAIL: gfortran.dg/pointer_array_5.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pointer_array_5.f90   -O3 -g  execution test
FAIL: gfortran.dg/pointer_array_5.f90   -Os  execution test
FAIL: gfortran.dg/pointer_assign_11.f90   -O0  execution test
FAIL: gfortran.dg/pointer_assign_11.f90   -O1  execution test
FAIL: gfortran.dg/pointer_assign_11.f90   -O2  execution test
FAIL: gfortran.dg/pointer_assign_11.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pointer_assign_11.f90   -O3 -g  execution test
FAIL: gfortran.dg/pointer_assign_11.f90   -Os  execution test
FAIL: gfortran.dg/pointer_assign_9.f90   -O0  execution test
FAIL: gfortran.dg/pointer_assign_9.f90   -O1  execution test
FAIL: gfortran.dg/pointer_assign_9.f90   -O2  execution test
FAIL: gfortran.dg/pointer_assign_9.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pointer_assign_9.f90   -O3 -g  execution test
FAIL: gfortran.dg/pointer_assign_9.f90   -Os  execution test
FAIL: gfortran.dg/pointer_check_1.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/pointer_check_1.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/pointer_check_2.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/pointer_check_2.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/pointer_check_3.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/pointer_check_3.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/pointer_check_4.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/pointer_check_4.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/pointer_check_5.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/pointer_check_5.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/pr48636-2.f90   -O   scan-ipa-dump cp "Creating a specialized node of [^\\n\\r]*bar/[0-9]*\\\\."
FAIL: gfortran.dg/pr48636-2.f90   -O   scan-ipa-dump-times cp "Aggregate replacements[^=]*=[^=]*=[^=]*=[^=]*=[^=]*=[^=]*=[^=]*=[^=]*=[^=]*=" 2
FAIL: gfortran.dg/pr48636.f90   -O   scan-ipa-dump inline "IPA hints: loop_iterations"
FAIL: gfortran.dg/pr48636.f90   -O   scan-ipa-dump inline "bar[^\\\\n]*inline copy in MAIN"
FAIL: gfortran.dg/pr62125.f90   -O1  execution test
FAIL: gfortran.dg/pr62125.f90   -O2  execution test
FAIL: gfortran.dg/pr62125.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pr62125.f90   -O3 -g  execution test
FAIL: gfortran.dg/pr62125.f90   -Os  execution test
FAIL: gfortran.dg/pr64230.f90   -O0  execution test
FAIL: gfortran.dg/pr64230.f90   -O1  execution test
FAIL: gfortran.dg/pr64230.f90   -Os  execution test
FAIL: gfortran.dg/pr78719_1.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/pr78719_1.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/pr86328.f90   -O0  execution test
FAIL: gfortran.dg/pr86328.f90   -O1  execution test
FAIL: gfortran.dg/pr86328.f90   -O2  execution test
FAIL: gfortran.dg/pr86328.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/pr86328.f90   -O3 -g  execution test
FAIL: gfortran.dg/pr86328.f90   -Os  execution test
FAIL: gfortran.dg/pr93423.f90   -O  (internal compiler error)
FAIL: gfortran.dg/pr93423.f90   -O  (test for excess errors)
FAIL: gfortran.dg/pr95690.f90   -O   (test for errors, line 6)
FAIL: gfortran.dg/pr95690.f90   -O  (test for excess errors)
FAIL: gfortran.dg/proc_ptr_18.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_18.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_19.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_19.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_20.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_20.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_21.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_21.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_23.f90   -O0  execution test
FAIL: gfortran.dg/proc_ptr_25.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_25.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_47.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_47.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_47.f90   -O1  execution test
FAIL: gfortran.dg/proc_ptr_47.f90   -O2  execution test
FAIL: gfortran.dg/proc_ptr_47.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/proc_ptr_47.f90   -O3 -g  execution test
FAIL: gfortran.dg/proc_ptr_47.f90   -Os  execution test
FAIL: gfortran.dg/proc_ptr_48.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_48.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_5.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_5.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_51.f90   -O0  execution test
FAIL: gfortran.dg/proc_ptr_51.f90   -O1  execution test
FAIL: gfortran.dg/proc_ptr_51.f90   -O2  execution test
FAIL: gfortran.dg/proc_ptr_51.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/proc_ptr_51.f90   -O3 -g  execution test
FAIL: gfortran.dg/proc_ptr_51.f90   -Os  execution test
FAIL: gfortran.dg/proc_ptr_7.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_7.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_1.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_1.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_11.f90   -O0  execution test
FAIL: gfortran.dg/proc_ptr_comp_13.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_13.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_14.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_14.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_18.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_18.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_19.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_19.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_2.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_2.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_29.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_29.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_34.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_34.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_45.f90   -O0  execution test
FAIL: gfortran.dg/proc_ptr_comp_45.f90   -O1  execution test
FAIL: gfortran.dg/proc_ptr_comp_45.f90   -O2  execution test
FAIL: gfortran.dg/proc_ptr_comp_45.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/proc_ptr_comp_45.f90   -O3 -g  execution test
FAIL: gfortran.dg/proc_ptr_comp_45.f90   -Os  execution test
FAIL: gfortran.dg/proc_ptr_comp_5.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_5.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_8.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_8.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_9.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_comp_9.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/proc_ptr_comp_pass_3.f90   -O0  execution test
FAIL: gfortran.dg/proc_ptr_result_7.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/proc_ptr_result_7.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/realloc_on_assign_27.f08   -O0  execution test
FAIL: gfortran.dg/realloc_on_assign_27.f08   -O1  execution test
FAIL: gfortran.dg/realloc_on_assign_27.f08   -O2  execution test
WARNING: gfortran.dg/realloc_on_assign_27.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/realloc_on_assign_27.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/realloc_on_assign_27.f08   -O3 -g  execution test
FAIL: gfortran.dg/realloc_on_assign_27.f08   -Os  execution test
FAIL: gfortran.dg/select_rank_1.f90   -O0  execution test
FAIL: gfortran.dg/select_rank_1.f90   -O1  execution test
FAIL: gfortran.dg/select_rank_1.f90   -O2  execution test
FAIL: gfortran.dg/select_rank_1.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_rank_1.f90   -O3 -g  execution test
FAIL: gfortran.dg/select_rank_1.f90   -Os  execution test
FAIL: gfortran.dg/select_type_13.f03   -O0  execution test
FAIL: gfortran.dg/select_type_13.f03   -O1  execution test
FAIL: gfortran.dg/select_type_13.f03   -Os  execution test
FAIL: gfortran.dg/select_type_14.f03   -O0  execution test
FAIL: gfortran.dg/select_type_14.f03   -O1  execution test
FAIL: gfortran.dg/select_type_14.f03   -Os  execution test
FAIL: gfortran.dg/select_type_19.f03   -O0  execution test
FAIL: gfortran.dg/select_type_19.f03   -O1  execution test
FAIL: gfortran.dg/select_type_19.f03   -O2  execution test
FAIL: gfortran.dg/select_type_19.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_19.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_19.f03   -Os  execution test
FAIL: gfortran.dg/select_type_26.f03   -O0  execution test
FAIL: gfortran.dg/select_type_26.f03   -O1  execution test
FAIL: gfortran.dg/select_type_26.f03   -O2  execution test
WARNING: gfortran.dg/select_type_26.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/select_type_26.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_26.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_26.f03   -Os  execution test
FAIL: gfortran.dg/select_type_27.f03   -O0  execution test
FAIL: gfortran.dg/select_type_27.f03   -O1  execution test
FAIL: gfortran.dg/select_type_27.f03   -O2  execution test
FAIL: gfortran.dg/select_type_27.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_27.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_27.f03   -Os  execution test
FAIL: gfortran.dg/select_type_35.f03   -O0  execution test
FAIL: gfortran.dg/select_type_35.f03   -O1  execution test
FAIL: gfortran.dg/select_type_35.f03   -O2  execution test
FAIL: gfortran.dg/select_type_35.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_35.f03   -Os  execution test
FAIL: gfortran.dg/select_type_36.f03   -O0  execution test
FAIL: gfortran.dg/select_type_36.f03   -O1  execution test
FAIL: gfortran.dg/select_type_36.f03   -O2  execution test
FAIL: gfortran.dg/select_type_36.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_36.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_36.f03   -Os  execution test
FAIL: gfortran.dg/select_type_37.f03   -O0  execution test
FAIL: gfortran.dg/select_type_37.f03   -O1  execution test
FAIL: gfortran.dg/select_type_37.f03   -O2  execution test
FAIL: gfortran.dg/select_type_37.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_37.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_37.f03   -Os  execution test
FAIL: gfortran.dg/select_type_39.f03   -O0  execution test
FAIL: gfortran.dg/select_type_39.f03   -O1  execution test
FAIL: gfortran.dg/select_type_39.f03   -O2  execution test
WARNING: gfortran.dg/select_type_39.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/select_type_39.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_39.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_39.f03   -Os  execution test
FAIL: gfortran.dg/select_type_4.f90   -O0  execution test
FAIL: gfortran.dg/select_type_4.f90   -O1  execution test
FAIL: gfortran.dg/select_type_4.f90   -O2  execution test
FAIL: gfortran.dg/select_type_4.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_4.f90   -O3 -g  execution test
FAIL: gfortran.dg/select_type_4.f90   -Os  execution test
FAIL: gfortran.dg/select_type_42.f90   -O0  execution test
FAIL: gfortran.dg/select_type_42.f90   -O1  execution test
FAIL: gfortran.dg/select_type_42.f90   -O2  execution test
WARNING: gfortran.dg/select_type_42.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/select_type_42.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_42.f90   -O3 -g  execution test
FAIL: gfortran.dg/select_type_42.f90   -Os  execution test
FAIL: gfortran.dg/select_type_43.f90   -O0  execution test
FAIL: gfortran.dg/select_type_43.f90   -O1  execution test
FAIL: gfortran.dg/select_type_43.f90   -O2  execution test
FAIL: gfortran.dg/select_type_43.f90   -O3 -g  execution test
FAIL: gfortran.dg/select_type_43.f90   -Os  execution test
FAIL: gfortran.dg/select_type_44.f90   -O0  execution test
FAIL: gfortran.dg/select_type_44.f90   -O1  execution test
FAIL: gfortran.dg/select_type_44.f90   -O2  execution test
FAIL: gfortran.dg/select_type_44.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_44.f90   -O3 -g  execution test
FAIL: gfortran.dg/select_type_44.f90   -Os  execution test
FAIL: gfortran.dg/select_type_48.f90   -O0  execution test
FAIL: gfortran.dg/select_type_48.f90   -O1  execution test
WARNING: gfortran.dg/select_type_48.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/select_type_48.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_48.f90   -Os  execution test
FAIL: gfortran.dg/select_type_8.f03   -O0  execution test
FAIL: gfortran.dg/select_type_8.f03   -O1  execution test
FAIL: gfortran.dg/select_type_8.f03   -O2  execution test
FAIL: gfortran.dg/select_type_8.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/select_type_8.f03   -O3 -g  execution test
FAIL: gfortran.dg/select_type_8.f03   -Os  execution test
FAIL: gfortran.dg/structure_constructor_11.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/structure_constructor_11.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/structure_constructor_11.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/structure_constructor_11.f90   -O1  compilation failed to produce executable
FAIL: gfortran.dg/structure_constructor_11.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/structure_constructor_11.f90   -O2  compilation failed to produce executable
FAIL: gfortran.dg/structure_constructor_11.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/structure_constructor_11.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/structure_constructor_11.f90   -O3 -g  (test for excess errors)
UNRESOLVED: gfortran.dg/structure_constructor_11.f90   -O3 -g  compilation failed to produce executable
FAIL: gfortran.dg/structure_constructor_11.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/structure_constructor_11.f90   -Os  compilation failed to produce executable
FAIL: gfortran.dg/submodule_1.f08   -O0  execution test
FAIL: gfortran.dg/submodule_1.f08   -O1  execution test
FAIL: gfortran.dg/submodule_1.f08   -O2  execution test
FAIL: gfortran.dg/submodule_1.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/submodule_1.f08   -O3 -g  execution test
FAIL: gfortran.dg/submodule_1.f08   -Os  execution test
FAIL: gfortran.dg/submodule_6.f08   -O0  execution test
FAIL: gfortran.dg/submodule_6.f08   -O1  execution test
FAIL: gfortran.dg/submodule_6.f08   -O2  execution test
FAIL: gfortran.dg/submodule_6.f08   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/submodule_6.f08   -O3 -g  execution test
FAIL: gfortran.dg/submodule_6.f08   -Os  execution test
FAIL: gfortran.dg/transfer_class_2.f90   -O0  execution test
FAIL: gfortran.dg/transfer_class_2.f90   -O1  execution test
FAIL: gfortran.dg/transfer_class_2.f90   -O2  execution test
FAIL: gfortran.dg/transfer_class_2.f90   -O3 -g  execution test
FAIL: gfortran.dg/transfer_class_2.f90   -Os  execution test
FAIL: gfortran.dg/transfer_class_3.f90   -O0  execution test
FAIL: gfortran.dg/transfer_class_3.f90   -O1  execution test
FAIL: gfortran.dg/transfer_class_3.f90   -O2  execution test
FAIL: gfortran.dg/transfer_class_3.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/transfer_class_3.f90   -O3 -g  execution test
FAIL: gfortran.dg/transfer_class_3.f90   -Os  execution test
FAIL: gfortran.dg/typebound_assignment_7.f90   -O0  execution test
FAIL: gfortran.dg/typebound_assignment_7.f90   -O1  execution test
FAIL: gfortran.dg/typebound_assignment_7.f90   -O2  execution test
FAIL: gfortran.dg/typebound_assignment_7.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/typebound_assignment_7.f90   -O3 -g  execution test
FAIL: gfortran.dg/typebound_assignment_7.f90   -Os  execution test
FAIL: gfortran.dg/typebound_operator_13.f03   -O0  execution test
FAIL: gfortran.dg/typebound_operator_13.f03   -O1  execution test
FAIL: gfortran.dg/typebound_operator_13.f03   -O2  execution test
FAIL: gfortran.dg/typebound_operator_13.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/typebound_operator_13.f03   -O3 -g  execution test
FAIL: gfortran.dg/typebound_operator_13.f03   -Os  execution test
FAIL: gfortran.dg/typebound_operator_21.f03   -O0  execution test
FAIL: gfortran.dg/typebound_operator_21.f03   -O1  execution test
FAIL: gfortran.dg/typebound_operator_21.f03   -O2  execution test
FAIL: gfortran.dg/typebound_operator_21.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/typebound_operator_21.f03   -O3 -g  execution test
FAIL: gfortran.dg/typebound_operator_21.f03   -Os  execution test
FAIL: gfortran.dg/typebound_operator_7.f03   -O0  execution test
FAIL: gfortran.dg/typebound_operator_7.f03   -O1  execution test
FAIL: gfortran.dg/typebound_operator_7.f03   -O2  execution test
FAIL: gfortran.dg/typebound_operator_7.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/typebound_operator_7.f03   -O3 -g  execution test
FAIL: gfortran.dg/typebound_operator_7.f03   -Os  execution test
FAIL: gfortran.dg/typebound_operator_8.f03   -O0  execution test
FAIL: gfortran.dg/typebound_operator_8.f03   -O1  execution test
FAIL: gfortran.dg/typebound_operator_8.f03   -O2  execution test
FAIL: gfortran.dg/typebound_operator_8.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/typebound_operator_8.f03   -O3 -g  execution test
FAIL: gfortran.dg/typebound_operator_8.f03   -Os  execution test
FAIL: gfortran.dg/typebound_operator_9.f03   -O0  execution test
FAIL: gfortran.dg/typebound_operator_9.f03   -O1  execution test
FAIL: gfortran.dg/typebound_operator_9.f03   -O2  execution test
FAIL: gfortran.dg/typebound_operator_9.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/typebound_operator_9.f03   -O3 -g  execution test
FAIL: gfortran.dg/typebound_operator_9.f03   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O0  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O0  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O1  execution test
WARNING: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_20.f90   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_20.f90   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_20.f90   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_20.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_20.f90   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_22.f90   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_22.f90   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_22.f90   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_22.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_22.f90   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_22.f90   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_24.f03   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_24.f03   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_24.f03   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_24.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_24.f03   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_24.f03   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_26.f90   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_26.f90   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_26.f90   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_26.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_26.f90   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_26.f90   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_29.f90   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_29.f90   -O1  execution test
WARNING: gfortran.dg/unlimited_polymorphic_29.f90   -O2  execution test program timed out.
FAIL: gfortran.dg/unlimited_polymorphic_29.f90   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_29.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_29.f90   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_29.f90   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_30.f03   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_30.f03   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_30.f03   -O2  execution test
WARNING: gfortran.dg/unlimited_polymorphic_30.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test program timed out.
FAIL: gfortran.dg/unlimited_polymorphic_30.f03   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_30.f03   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_30.f03   -Os  execution test
FAIL: gfortran.dg/unlimited_polymorphic_6.f90   -O0  execution test
FAIL: gfortran.dg/unlimited_polymorphic_6.f90   -O1  execution test
FAIL: gfortran.dg/unlimited_polymorphic_6.f90   -O2  execution test
FAIL: gfortran.dg/unlimited_polymorphic_6.f90   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gfortran.dg/unlimited_polymorphic_6.f90   -O3 -g  execution test
FAIL: gfortran.dg/unlimited_polymorphic_6.f90   -Os  execution test
FAIL: gfortran.dg/gomp/target1.f90   -O  (internal compiler error)
FAIL: gfortran.dg/gomp/target1.f90   -O  (test for excess errors)

        === gfortran Summary ===

# of expected passes        52751
# of unexpected failures    800
# of expected failures      193
# of unresolved testcases   48
# of unsupported tests      252
/Users/fx/ibin/gcc/gfortran  version 11.0.0 20200829 (experimental) (GCC) 

Compiler version: 11.0.0 20200829 (experimental) (GCC) gfortran 
Platform: aarch64-apple-darwin20
configure flags: --build=aarch64-apple-darwin20 --prefix=/Users/fx/irun --with-gmp=/usr/local --disable--bootstrap --with-native-system-header-dir=/usr/include --with-sysroot=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
fxcoudert commented 4 years ago

Hum, the backtrace says the out-of-bounds access is in the copy code, that's weird:

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x100003a68)
    frame #0: 0x0000000100003a84 a.out`__copy_INTEGER_4_.0 at a.f90:1
-> 1    program test
   2      type P
   3        class(*), allocatable :: X(:)
   4      end type
   5      Type(P) Y
   6      integer, parameter :: arr(1) = (/ 5 /)
   7    
Target 0: (a.out) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x100003a68)
  * frame #0: 0x0000000100003a84 a.out`__copy_INTEGER_4_.0 at a.f90:1
    frame #1: 0x0000000100003d7c a.out`MAIN__ at a.f90:8
    frame #2: 0x0000000100003dcc a.out`main at a.f90:9
    frame #3: 0x00000001d29e8a04 libdyld.dylib`start + 4

That method seems safe:

__copy_INTEGER_4_ (integer(kind=4) & restrict src, integer(kind=4) & restrict dst)
{
  *dst = *src;
}

and from the dump trees, it should be called with the right parameters. I'm puzzled by this one…

fxcoudert commented 4 years ago

I can still see this, and many other testcases failing on the same pattern:

$ cat associate_13.f90                                                  
  type :: mytype
    integer :: i
  end type
  type :: myderivedtype
     class(mytype), allocatable :: x
  end type
  type(mytype) :: z
  type(myderivedtype) :: toto

  z = mytype(99)
  allocate (toto%x)
  toto%x = z
end
$ ./bin/gfortran associate_13.f90 && ./a.out

Program received signal SIGBUS: Access to an undefined portion of a memory object.

Backtrace for this error:

Could not print backtrace: libbacktrace could not find executable to open
#0  0x104b2b577
#1  0x104b2a5eb
#2  0x1d2bf9c83
#3  0x104b17db7
zsh: bus error  ./a.out

This is allocating memory just fine, and I think the issue is the passing of arguments into the copy function __copy_MAIN___Mytype:

__copy_MAIN___Mytype (struct mytype & restrict src, struct mytype & restrict dst)
{
  *dst = *src;
}

MAIN__ ()
{
  static void __copy_MAIN___Mytype (struct mytype & restrict, struct mytype & restrict);
  static struct mytype __def_init_MAIN___Mytype;
  static struct __vtype_MAIN___Mytype __vtab_MAIN___Mytype = {._hash=34576325, ._size=4, ._extends=0B, ._def_init=&__def_init_MAIN___Mytype, ._copy=__copy_MAIN___Mytype, ._final=0B, ._deallocate=0B};
  static struct myderivedtype toto = {.x={._vptr=&__vtab_MAIN___Mytype}};
  struct mytype z;

  toto.x._data = 0B;
  toto.x._vptr = &__vtab_MAIN___Mytype;
  {
    struct mytype mytype.0;

    mytype.0.i = 99;
    z = mytype.0;
  }
  if (toto.x._data != 0B)
    {
      _gfortran_runtime_error_at (&"At line 11 of file associate_13.f90"[1]{lb: 1 sz: 1}, &"Attempting to allocate already allocated variable \'%s\'"[1]{lb: 1 sz: 1}, &"toto"[1]{lb: 1 sz: 1});
    }
  else
    {
      toto.x._data = (struct mytype *) __builtin_malloc (4);
      if (toto.x._data == 0B)
        {
          _gfortran_os_error_at (&"In file \'associate_13.f90\', around line 12"[1]{lb: 1 sz: 1}, &"Error allocating %lu bytes"[1]{lb: 1 sz: 1}, 4);
        }
    }
  (struct __vtype_MAIN___Mytype *) toto.x._vptr = &__vtab_MAIN___Mytype;
  toto.x._vptr = (struct __vtype_MAIN___Mytype * {ref-all}) &__vtab_MAIN___Mytype;
  if (toto.x._data == 0B)
    {
      toto.x._data = (struct mytype *) __builtin_malloc (MAX_EXPR <(unsigned long) toto.x._vptr->_size, 1>);
      if (toto.x._data == 0B)
        {
          _gfortran_os_error_at (&"In file \'associate_13.f90\', around line 13"[1]{lb: 1 sz: 1}, &"Error allocating %lu bytes"[1]{lb: 1 sz: 1}, (unsigned long) toto.x._vptr->_size);
        }
    }
  toto.x._vptr->_copy (&z, toto.x._data);
}

__attribute__((externally_visible))
main (integer(kind=4) argc, character(kind=1) * * argv)
{
  static integer(kind=4) options.1[7] = {2116, 4095, 0, 1, 1, 0, 31};

  _gfortran_set_args (argc, argv);
  _gfortran_set_options (7, &options.1[0]);
  MAIN__ ();
  return 0;
}

I am not sure how to break at that function, and examine the content of the two function parameters.

fxcoudert commented 4 years ago

OK I think there is something wrong with passing some structs. Here is another issue, also related to a function call passing structs:

$ cat pr62125.f90 
module m
 implicit none
 type, abstract :: t1
  logical :: l
 end type t1
 type, extends(t1), abstract :: t2
  integer :: i
 end type t2
 type, extends(t2) :: t3
  real :: x
 end type t3
contains
 subroutine s(u)
  class(t1), intent(in) :: u
   select type(u); class is(t2)
     select type(u); class is(t3)
     end select
   end select
 end subroutine s
end module m

program p
 use m
 implicit none
 type(t3) :: var = t3( l=.true. , i=2 , x=3.5 )
 call s(var)
end program p
$ ./bin/gfortran pr62125.f90 -O2 && ./a.out

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:

Could not print backtrace: libbacktrace could not find executable to open
#0  0x104c7b577
#1  0x104c7a5eb
#2  0x1d2bf9c83
#3  0x104b67ea3
zsh: segmentation fault  ./a.out

This time the error is in libgfortran's _gfortran_is_extension_of: the second argument is pointing, which is the derived type's vtab, gets passed wrong when optimising at -O2. The pointer points to a wrong location.

This is rather heavily-tested code, both in front-end and runtime library, so I don't think it's an issue with the front-end emitting wrong types. I don't know how to debug further, though :(

iains commented 4 years ago

I don't suppose there's a C equivalent? it would be a little easier to debug.

fxcoudert commented 4 years ago

@iains no sorry, I tried to create a C code that would be similar, but it does not trigger the issue. The generated code is minimal, though (a dozen lines or so in the tree dump). I am not sure how to better help find out the root cause, sorry.

iains commented 4 years ago

AFAIU, there is no "fortran-specfic" ABI - that is, GCC maps Fortran language constructs onto the regular "C" platform calling conventions.

I'll have to try adding some debug - lldb doesn't understand Fortran too well at the moment. As things stand it seems that the second argument to the interger_4 copy routine is bogus (points somewhere in the text section).

What's odd is that the output of compat.exp / struct-layout-1.exp for C suggest that we are quite internally consistent in calling functions with the arguments in the place that the callee expects them - we are not so good between GCC<=>clang, but that's not the circumstance we have here - we're calling a function we compiled.

Will have a poke at debugging this sometime soonish.

iains commented 4 years ago
        bl      _malloc
LVL5:
        cbz     x0, L5

see if there's a NULL return

LBB9:
        str     x0, [sp]

save the pointer to memory

        adrp    x0, ___vtab_INTEGER_4_.2@PAGE
        add     x0, x0, ___vtab_INTEGER_4_.2@PAGEOFF;momd
        ldr     x1, [x0, 32]

get the address of the __copy_INTEGER4.0 function

        adrp    x0, _arr.3@PAGE
        add     x0, x0, _arr.3@PAGEOFF;momd

get a pointer to arr3

        blr     x1

call __copy_INTEGER_4_.0

BUT:

___copy_INTEGER_4_.0:

        ldr     w0, [x0]
        str     w0, [x1]
        ret

SO .. it seems that somehow we're using the destination address reg ___copy_INTEGER_4_.0 expects as the scratch to load the indirect call.

might be a code-gen problem rather than a CC one.

iains commented 4 years ago

or somehow we think that ___copy_INTEGER_4 has a function signature like:

___copy_INTEGER_4 (source,...)

which seems a bit unlikely ... ... perhaps I'm just missing tweaks to indirect calling sequences :(

iains commented 4 years ago
 <function_type 0x14461be70
    type <void_type 0x14460ff18 void VOID
        align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x14460ff18
        pointer_to_this <pointer_type 0x144617000>>
    SI
    size <integer_cst 0x144602eb8 type <integer_type 0x14460f0a8 bitsizetype> constant 32>
    unit-size <integer_cst 0x144602ed0 type <integer_type 0x14460f000 sizetype> constant 4>
    align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x14461be70
    arg-types <tree_list 0x1446097f8 value <void_type 0x14460ff18 void>>
    pointer_to_this <pointer_type 0x14461bf18>>

expand_call doesn't seem to get a function decl - and the function type seems to be like a K&R unprototyped func - i.e void (*fun)()

So, I guess that explains why we push the second part onto the stack... ... now the question is why we think this.

iains commented 4 years ago

BTW, this is on a cross-compiler, so the compiler is X86_64 code ... therefore, I'd hope we don't expect wrong code there.

How are the entries in a Fortran vtable typed?

I've stepped through the code - and it's doing what I would expect given a function signature void (*f) ()

the code correctly determines there are two call arguments, and it determines that there's one named arg - the () produces an arglist with as the only entry.

iains commented 4 years ago

so .. it seems that x86_64 gets the same information, but it passes the parms the same way as it would if they were named (I suspect this is the common case - and is true for 'regular' aarch64, too). I can check for powerpc darwin, but IIRC that duplicates the values in register and on the stack - so that it looks the same too.

This is somewhat problematical - since the darwinpcs ABI for variadic functions does not pass in registers, after the last named one.

I guess what we need to explore, is why the function type/decl is not available (presumably the type of the vtable entries must be known, something "knew" which entry to use).

So, despite that this is "well tested" on other platforms - it seems that we have not encountered this set of circumstances before.

fxcoudert commented 4 years ago

I've emailed the Fortran maintainers at https://gcc.gnu.org/pipermail/fortran/2020-September/054978.html Indeed the front-end knows the prototype for that function, so it should emit it.

iains commented 4 years ago

thanks, I saw that (lurker on that list).

I wonder if we can use the VOID list node to detect that we have a "k&r" style function definition and switch the call lowering to use the "force everything to be treated as named" (there is such a mode).

Of course, that's not really a substitute for proper information (it would get things wrong if you really did have a variadic function as one of the entries, I think).

fxcoudert commented 4 years ago

Three Fortran patches submitted: