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

Mikael Morin <mikael at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mikael at gcc dot gnu.org

--- Comment #2 from Mikael Morin <mikael at gcc dot gnu.org> ---
(In reply to Paul Thomas from comment #0)
> Fortunately, it only affects contained functions so that we do not have to
> carry it across when using modules.
> 
Don't we have to?
Wouldn't it be the same if ARRAY and FRED were use-associated symbols, or
if FRED was accessing ARRAY through use-association instead of
host-association?

(In reply to Tobias Burnus from comment #1)
> On the other hand, it would be probably
> faster to do:
>   tmp = pure_function()
>   array = elemental(array) * tmp
> which also avoids this problem.

As far as I know, the scalarizer does this already (in both cases where
pure_function is scalar and non-scalar).


By the way, a temporary is also necessary for
    array = Fred(index, other_array)
that is, array need not be as argument to Fred.

Reply via email to