• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Odd GCC Behavior
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

References: 
 >Odd GCC Behavior (From: "J. Aaron Pendergrass" <email@hidden>)
 >Re: Odd GCC Behavior (From: Jim Jagielski <email@hidden>)
 >Re: Odd GCC Behavior (From: "J. Aaron Pendergrass" <email@hidden>)
 >Re: Odd GCC Behavior (From: "Clark Cox" <email@hidden>)
 >Re: Odd GCC Behavior (From: "J. Aaron Pendergrass" <email@hidden>)

  • Prev by Date: Re: Odd GCC Behavior
  • Next by Date: Re: Odd GCC Behavior
  • Previous by thread: Re: Odd GCC Behavior
  • Index(es):
    • Date
    • Thread