This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix to EH bug caused by packed union issue
- To: mark at codesourcery dot com
- Subject: Re: Fix to EH bug caused by packed union issue
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Mon, 2 Jul 01 06:25:00 EDT
- Cc: gcc-patches at gcc dot gnu dot org
Since `layout_decl' aborts for most kinds of decls -- but specifically
does not abort for FIELD_DECL, one must assume it accepts FIELD_DECLs.
So, if you're now asserting that it should not be called for *any*
FIELD_DECLs, you need to change it to abort in that case too. If for
*these* FIELD_DECLs you need an explanatory comment about why for
other DECLs, but not FIELD_DECLs.
The issue is simply that layout_decl is called for FIELD_DECLs only as
part of laying out the type they are in, not before. So I don't
understand your comment.
I don't think I can quite parse that sentence, but it's disturbing
from context. The "I think" is troubling because if you're not sure,
I'm not sure at all. And I'm worried that if someone were to fix it
to do what you wanted it to, they might then break things.
I'm *sure* it doesn't do what I wanted it to do. The only time it does
anything is if layout_decl is called with a FIELD_DECL before the record
is actually laid out and that's wrong anyway.
Please revert the original change and this one and start over,
beginning at the beginning, with what you are trying to achieve and
how you want to achieve it, and let everyone comment on it, and then
we'll decide what to do.
All but one hunk of that patch is totally unrelated to this issue since it
only adds a hook for a front-end and doesn't change anything for front ends
that can't use it. I'll remove the one hunk in question.