This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: g++ 3.1 EH broken for irix6.5



>     We cannot do this without a very good reason.  Generating more
>     efficient code is definitely not good enough.
>
> Sure it is.  The alias set implementation is a perfectly good example:
> there are numerous erroneous programs that have "worked" and will no
> longer work once we made this change.

Optimizations are considerably different from data structure layout.
In particular, competent programmers know that optimizations may
reorder accesses, elide computations, etc. -- and they know not
to rely on these things.  Your change, on the other hand, is as
surprising as changing the size of an `int' -- except that it is
less severe because it will impact fewer programs.

The documentation could easily be read to imply that a packed type
is byte-aligned; it would take a very astute reader to conclude that
although we specified byte-alignment for variables and fields -- and
accepted the attribute for types -- that we did not mean byte-alignment
for types.  Especially given the bit about packed on a type being
equivalent to packed on all of the fields.  (Does your change
adhere to that requirement by the way?  If you actually put `packed'
on every field do you still get the more-efficient alignment, or
only if you do it on the type?)

Documented or not, we simply cannot change this, in my opinion.

If you disagree, I am happy to ask the SC to vote on the matter.

-- 
Mark Mitchell                mark@codesourcery.com
CodeSourcery, LLC            http://www.codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]