This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: g++ 3.1 EH broken for irix6.5
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Subject: Re: g++ 3.1 EH broken for irix6.5
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Thu, 28 Jun 2001 20:11:17 -0700
- cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
> 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