[fortran] Update gfortran disabled test list now that CLASS is lowered (#109)
All the TODOs and bugs related to CLASS have been implemented/fixed.
Enable newly passing tests and move all other failing tests under
existing or new categories. None of these failures are bugs, most
are different TODOs, unimplemented runtime checks, or cases where
flang will behave differently than gfortran on purpose.
disable class_allocate_19 until further investigation.
diff --git a/Fortran/gfortran/CMakeLists.txt b/Fortran/gfortran/CMakeLists.txt
index 18cfb2a..2d75cda 100644
--- a/Fortran/gfortran/CMakeLists.txt
+++ b/Fortran/gfortran/CMakeLists.txt
@@ -138,8 +138,10 @@
-fdiagnostics-format=json
-fdiagnostics-show-option
-fdollar-ok
+ -fdump-fortran-original
-fdump-ipa-cp-details
-fdump-ipa-fnsummary-details
+ -fdump-ipa-inline
-fdump-ipa-inline-details
-fdump-ipa-sra-details
-fdump-rtl-combine
@@ -149,6 +151,7 @@
-fdump-tree-cunrolli-details
-fdump-tree-dom2
-fdump-tree-dom2-details
+ -fdump-tree-dse-details
-fdump-tree-forwprop2
-fdump-tree-fre1
-fdump-tree-gimple
diff --git a/Fortran/gfortran/regression/DisabledFiles.cmake b/Fortran/gfortran/regression/DisabledFiles.cmake
index a65aab4..734b69c 100644
--- a/Fortran/gfortran/regression/DisabledFiles.cmake
+++ b/Fortran/gfortran/regression/DisabledFiles.cmake
@@ -115,6 +115,8 @@
print_fmt_3.f
# Unsupported extension intrinsic functions DACOSH, ZCOS, &c.
specifics_2.f90
+ # Passing Hollerith to CLASS(*). This is not standard. Flang passes it as character.
+ unlimited_polymorphic_14.f90
# Unsupported predefined macro: __TIMESTAMP__
wdate-time.F90
)
@@ -148,6 +150,8 @@
assumed_rank_20.f90
assumed_rank_21.f90
assumed_type_9.f90
+ assumed_type_10.f90
+ assumed_type_11.f90
bind-c-contiguous-2.f90
interface_49.f90
is_contiguous_2.f90
@@ -160,6 +164,7 @@
sizeof_4.f90
sizeof_6.f90
unlimited_polymorphic_1.f03
+ unlimited_polymorphic_32.f90
# unimplemented: ASYNCHRONOUS in procedure interface
assumed_rank_13.f90
@@ -184,47 +189,6 @@
pr39695_1.f90
pr63797.f90
- # unimplemented: support for polymorphic types.
- allocate_alloc_opt_8.f90
- assumed_type_10.f90
- assumed_type_11.f90
- assumed_type_16.f90
- assumed_type_1.f90
- assumed_type_2.f90
- assumed_type_4.f90
- c_f_pointer_tests_5.f90
- class_3.f03
- class_45a.f03
- class_52.f90
- class_allocate_19.f03
- class_array_3.f03
- coarray_allocate_2.f08
- coarray_allocate_3.f08
- coarray_allocate_5.f08
- coarray_lib_alloc_2.f90
- coarray_lib_alloc_3.f90
- coarray_poly_5.f90
- der_io_5.f90
- implicit_class_1.f90
- intent_out_7.f90
- pointer_array_5.f90
- pr105501.f90
- pr48958.f90
- pr57987.f90
- pr63331.f90
- pr78092.f90
- ptr_func_assign_2.f08
- realloc_on_assign_20.f90
- realloc_on_assign_21.f90
- select_type_17.f03
- select_type_48.f90
- sizeof_5.f90
- storage_size_1.f08
- typebound_proc_15.f03
- unlimited_polymorphic_14.f90
- unlimited_polymorphic_3.f03
- unlimited_polymorphic_32.f90
-
# unimplemented: BIND (C) internal procedure.
ISO_Fortran_binding_19.f90
array_reference_3.f90
@@ -277,12 +241,18 @@
coarray_19.f90
coarray_25.f90
coarray_30.f90
+ coarray_allocate_2.f08
+ coarray_allocate_3.f08
+ coarray_allocate_5.f08
coarray_alloc_with_implicit_sync_1.f90
coarray_alloc_with_implicit_sync_2.f90
coarray_lib_alloc_1.f90
+ coarray_lib_alloc_2.f90
+ coarray_lib_alloc_3.f90
coarray_lib_token_3.f90
coarray_lock_7.f90
coarray_poly_4.f90
+ intent_out_7.f90
# unimplemented: coarray in procedure interface
coarray_29_1.f90
@@ -294,12 +264,14 @@
coarray_lib_move_alloc_1.f90
coarray_lib_this_image_1.f90
coarray_lib_this_image_2.f90
+ coarray_poly_5.f90
coarray_poly_6.f90
coarray_poly_7.f90
coarray_poly_8.f90
class_optional_1.f90
class_optional_2.f90
coarray_41.f90
+ pr63331.f90
submodule_26.f08
# unimplemented: coarray reference
@@ -538,7 +510,6 @@
c_char_tests.f03
# Categorize and debug further
- bounds_check_17.f90 # needs -fcheck=bounds
c_char_tests_3.f90 # runtime segfault
c_funptr_1.f90 # needs "win32_types" module
c_funptr_1_mod.f90 # needs "win32_types" module
@@ -574,6 +545,10 @@
pr69739.f90
typebound_call_32.f90
+ # Crashes at compile time in certain builds
+ # https://github.com/llvm/llvm-project/issues/89179
+ class_allocate_19.f03
+
# --------------------------------------------------------------------------
#
# These tests are skipped because they result in a compile error. This may
@@ -1221,6 +1196,7 @@
boz_10.f90
boz_7.f90
byte_1.f90
+ class_3.f03
common_19.f90
common_9.f90
constructor_4.f90
@@ -1283,10 +1259,12 @@
warnings_are_errors_1.f90
# -std=f2003 tests to detect Fortran 2008 features
+ allocate_alloc_opt_8.f90
bessel_3.f90
bind_c_array_params.f03
bind_c_bool_1.f90
binding_label_tests_20.f90
+ class_52.f90
c_funloc_tests_5.f03
c_kind_int128_test1.f03
c_loc_test_19.f90
@@ -1313,12 +1291,17 @@
pointer_target_2.f90
pr95373_2.f90
ptr-func-2.f90
+ ptr_func_assign_2.f08
pure_formal_2.f90
rank_2.f90
+ realloc_on_assign_20.f90
type_decl_2.f90
typebound_proc_3.f03
+ typebound_proc_15.f03
# -std=f2008 tests to detect Fortran 2018 features
+ assumed_type_16.f90
+ assumed_type_4.f90
bind_c_usage_28.f90
c_loc_tests_11.f03
coarray_collectives_2.f90
@@ -1346,6 +1329,7 @@
# Tests that are not errors, and compile just fine with flang
constant_shape.f90
continuation_2.f90
+ der_io_5.f90 # gfortran's error is inappropriate, array-ctor are not polymorphic.
equiv_pure.f90 # gfortran's error is inappropriate for this test
finalize_9.f90
func_decl_3.f90
@@ -1354,6 +1338,7 @@
interface_7.f90
intrinsic_short-long.f90
parameter_array_init_6.f90
+ pr105501.f90 # Missing space between TYPE and IS is not ambiguous for parser.
pr19936_1.f90 # ac-do-variables are their own entities
pr35031.f90 # ENTRY in ELEMENTAL
pr43996.f90
@@ -1363,6 +1348,7 @@
pr88328.f90
recursive_check_1.f # RECURSIVE is now default
recursive_check_2.f90
+ select_type_17.f03 # gfortran's error is inappropriate: pointer results are variables.
string_1_lp64.f90
substr_10.f90
@@ -1390,6 +1376,7 @@
associated_3.f90
bessel_5_redux.f90
bounds_temporaries_1.f90
+ c_f_pointer_tests_5.f90
dec_loc_rval_3.f03
do_4.f
do_check_5.f90
@@ -1897,6 +1884,13 @@
init_flag_7.f90
init_flag_9.f90
+ # Require -fno-realloc-lhs or similar.
+ realloc_on_assign_21.f90
+
+ # Require -fcheck=bounds or similar.
+ bounds_check_17.f90
+ pr48958.f90
+
# https://github.com/llvm/llvm-project/issues/84088
pr36006-2.f90
)