------- Comment #3 from burnus at gcc dot gnu dot org 2010-03-03 15:53 -------
As it might have not been completely clear from comment 0:
type t
[...]
integer, pointer :: b(:)
end type
type(t) :: y
y%b => z(::2)
call bar(y%b) ! <<< WRONG-CODE: Here a temporary is missing
Without the temporary, [1,2,3] instead of [1,3,5] is passed to "bar" and thus
the example fails with a call to ABORT. (The rest of example illustrates a
missed optimization, which is not a regression.)
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |4.5.0
Known to work| |4.3.5 4.4.3
Priority|P3 |P4
Summary|[4.5 Regression] Missing |[4.5 Regression] Wrong-code
|array temp for DT with |due to missing array temp
|pointer component |for DT with pointer
| |component
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43243