Hello,

Ping**2...

this is patch still pending:

see https://gcc.gnu.org/ml/gcc-patches/2014-04/msg00774.html
for the latest version.

Thanks,
Bernd.


> Date: Wed, 30 Apr 2014 15:17:51 +0200
>
> Ping...
>
>> Date: Tue, 15 Apr 2014 13:49:37 +0200
>>
>> Hi Tobias,
>>
>> On Fri, 11 Apr 2014 16:04:51, Tobias Burnus wrote:
>>>
>>> Hi Tobias,
>>>
>>> On Fri, Apr 11, 2014 at 02:39:57PM +0200, Bernd Edlinger wrote:
>>>> On Fri, 11 Apr 2014 13:37:46, Tobias Burnus wrote:
>>>> Hmm,
>>>>
>>>> I was hoping somehow that only that test case is broken,
>>>> and needs to be fixed. The target attribute is somehow simple,
>>>> it implies intent(in) and the actual value will in most cases
>>>> be a pointer, as in the example.
>>>
>>> I think that passing another nonpointer TARGET to a dummy argument
>>> which has a TARGET attribute is at least as common as passing a
>>> POINTER to a TARGET.
>>>
>>> TARGET is roughtly the opposite to the restrict qualifier. By default
>>> any nonpointer variable does not alias with something else, unless
>>> it has the TARGET attribute; if it has, it (its address) can then
>>> be assigned to a pointer. POINTER intrinsically alias and cannot
>>> have the TARGET attribute.
>>>
>>>>> Pointer -> Nonalloc
>>>>> Allocatable -> Noalloc
>>>>> Nonallocatable*/Allocatable* -> Pointer with intent(in)
>>>>
>>>> Well, this approach does not handle intent(inout) at all.
>>>
>>>
>>
>> Now I have created a test case for the different aliasing issues
>> with may arise with scalar objects.
>>
>> As you pointed out, also conversions of allocatable -> nonalloc,
>> allocatable -> pointer and nonalloc -> pointer turn out to
>> violate the strict aliasing rules. However, conversions of
>> arrays of objects with different attributes seem to be safe.
>>
>> I have not been able to find an example where it would be
>> necessary to write the modified class object back to the original
>> location. But I am not really a Fortran expert.
>>
>> Unfortunately there are also conversions of optional allocatable ->
>> optional pointer, which complicate the whole thing quite a lot.
>> I have found these in class_optional_2.f90.
>>
>> Boot-strapped and regression-tested on x86_64-linux-gnu.
>> OK for trunk?
>>
>>
>> Thanks
>> Bernd.
>>
>
                                          

Reply via email to