Re: Odd GCC Behavior
Re: Odd GCC Behavior
- Subject: Re: Odd GCC Behavior
- From: "Clark Cox" <email@hidden>
- Date: Mon, 30 Jun 2008 11:59:40 -0700
On Mon, Jun 30, 2008 at 9:36 AM, J. Aaron Pendergrass
<email@hidden> wrote:
>
> On Jun 30, 2008, at 12:26 PM, Clark Cox wrote:
>
>> On Mon, Jun 30, 2008 at 6:38 AM, J. Aaron Pendergrass
>> <email@hidden> wrote:
>>>
>>> I'm aware that this is undefined.
>>> I did explicitly say that the C spec leaves this unspecified.
>>> But {1,2,7,4} seems like such an odd choice. Especially when looking at
>>> the
>>> disassembly:
>>>
>>> lwz r2,56(r30)
>>> addi r2,r2,-8
>>> lwz r9,0(r2)
>>> lwz r2,56(r30)
>>> addi r0,r2,-4
>>> stw r0,56(r30)
>>> lwz r2,56(r30)
>>> lwz r0,0(r2)
>>> add r0,r9,r0
>>> lwz r2,56(r30)
>>> addi r2,r2,-8
>>> stw r0,0(r2)
>>>
>>> which really seems to be going out of its way to implement a fairly
>>> unintuitive semantics
>>> for this piece of undefined behavior and I was curious what the
>>> motivation
>>> behind this behavior might be.
>>
>> With undefined behavior, there is no such thing as an "odd choice".
>> There is no choice to be made.
>
> Of course there's a choice to be made.
> The compiler has to do something. It chose to do something on powerpc that
> is
> completely different from what it chooses to do on other architectures, and
> on other
> programs which have very similar undefined usages, and which seemed somewhat
> unintuitive (in the sense that if I were to define a particular behavior it
> would not have
> been the one I observed).
That implies that someone consciously chose the behavior that you're
seeing. Which isn't necessarily the case. Any time spent on this kind
of undefined behavior (by compiler writers) is a waste of time, as
nobody should be writing such code, and anyone who does, deserves the
undefined behavior that they get.
> I'm curious what the motivation is for this particular choice.
> If you don't know the answer don't respond.
The "answer" is that there isn't any.
--
Clark S. Cox III
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden