This is the mail archive of the gcc@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]
Other format: [Raw text]

PR 8134: C++ crash


PR 8134 is a crash in force_store_init_value on the branch; it is a
regression.

The root problem here is that we were not handling zero-initialization
of pointers to members correctly.  Alexandre tried to fix the problem,
but in the process introduced the crashes above.  This was resolved on
the mainline with a rather substantial reworking of class layout code;
that was my patch to create a separate base class variant of each type.

What should we do on the branch?

The obvious choices are:

a) Nothing

  In this case, stuff blows up badly.

b) Move my changes over.

  As far as we know, these are correct -- but they are substantial,
  and therefore risky.

c) Revert Alexandre's patch.

  In this case, we get back to GCC 3.0-like behavior; incorrect
  zero-initialization of some pointers-to-members.

I don't like any of these choices.  I think I lean towards (c),
merely as a "devil you know" kind of choice.  I can also do (b), if
people feel that's the right thing, but I'm nervous about somehow
making an inadvertant ABI change in the minor release.

Thoughts?

--
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]