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

--- Comment #16 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to Mikael Morin from comment #14)
> Bernd, do you have a reliable way to test a patch, checking for aliasing
> violations?

No, all I can do is run the test suite on my armv7l-unknown-linux-gnueabihf
target.  The problem with the alias violations is as big as an ice berg,
but it only made one single test case fail on the ARMv7 target:
select_type_4.f90, see pr60718.

Regarding your patch with TYPE_CANONICAL: interesting idea.

Although it is completely invisible on -fdump-tree-original,
the problematic assembler section changes on the reduced test case
select_type_4a.f90.  I have only a cross-compiler at the moment, so I can not
tell, if the code would work in reality, but it looks like it should.

I am not sure if I find time to test your patch on the real target next week.

However there are many test cases failing on x86_64 at the moment:


you can ignore the class_alias.f90 failures, because this test case
works more or less like a module test for r218584, so if that is removed
the test case makes no sense any more.

but there are many regressions, which would need to be fixed before
it makes sense to test anything on the ARMv7 target:
FAIL: gfortran.dg/coarray/coindexed_3.f90 -fcoarray=lib  -O2  -lcaf_single
-latomic (internal compiler error)
FAIL: gfortran.dg/coarray/coindexed_3.f90 -fcoarray=lib  -O2  -lcaf_single
-latomic (test for excess errors)
UNRESOLVED: gfortran.dg/coarray/coindexed_3.f90 -fcoarray=lib  -O2 
-lcaf_single -latomic compilation failed to produce executable
FAIL: gfortran.dg/class_optional_1.f90   -Os  execution test
FAIL: gfortran.dg/move_alloc_13.f90   -Os  execution test
FAIL: gfortran.dg/select_type_26.f03   -O2  execution test
FAIL: gfortran.dg/select_type_26.f03   -O3 -fomit-frame-pointer  execution test
FAIL: gfortran.dg/select_type_26.f03   -O3 -fomit-frame-pointer -funroll-loops 
execution test
FAIL: gfortran.dg/select_type_26.f03   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/select_type_26.f03   -O3 -g  execution test
FAIL: gfortran.dg/sizeof_4.f90   -O1  (internal compiler error)
FAIL: gfortran.dg/sizeof_4.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -O1  compilation failed to produce
executable
FAIL: gfortran.dg/sizeof_4.f90   -O2  (internal compiler error)
FAIL: gfortran.dg/sizeof_4.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -O2  compilation failed to produce
executable
FAIL: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer  (internal compiler
error)
FAIL: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer  (test for excess
errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer  compilation
failed to produce executable
FAIL: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer -funroll-loops 
(internal compiler error)
FAIL: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer -funroll-loops  (test
for excess errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer -funroll-loops 
compilation failed to produce executable
FAIL: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  (internal compiler error)
FAIL: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/sizeof_4.f90   -O3 -g  (internal compiler error)
FAIL: gfortran.dg/sizeof_4.f90   -O3 -g  (test for excess errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -O3 -g  compilation failed to produce
executable
FAIL: gfortran.dg/sizeof_4.f90   -Os  (internal compiler error)
FAIL: gfortran.dg/sizeof_4.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/sizeof_4.f90   -Os  compilation failed to produce
executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O2  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer 
(internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer  (test
for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer  (test
for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_1.f03   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_1.f03   -Os  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -O2  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer 
(internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer 
(test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
 compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_17.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_17.f90   -Os  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -O2  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer 
(internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer 
(test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
 compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_18.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_18.f90   -Os  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O2  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer 
(internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer 
(test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
 compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_19.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_19.f90   -Os  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -O2  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer 
(internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer 
(test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
 compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_21.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_21.f90   -Os  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_3.f03   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_3.f03   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_3.f03   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_3.f03   -Os  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O1  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O1  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -O1  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O2  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O2  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -O2  compilation failed
to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer 
(internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer  (test
for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer
-funroll-loops  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer
-funroll-loops  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  compilation failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -g  (internal compiler
error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -g  (test for excess
errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -O3 -g  compilation
failed to produce executable
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -Os  (internal compiler error)
FAIL: gfortran.dg/unlimited_polymorphic_5.f90   -Os  (test for excess errors)
UNRESOLVED: gfortran.dg/unlimited_polymorphic_5.f90   -Os  compilation failed
to produce executable

Reply via email to