This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Proposed patch for PR 7507 and PR 9289
On Fri, Jan 17, 2003 at 10:31:34AM -0800, Dale Johannesen wrote:
> This is (at least) the 3rd bug like this that has shown up. Might it
> be a
> good idea to rewrite the low-level label infrastructure to allow
> duplicate labels in the placeholder alternatives? That might be
> stabler.
Assume that we actually allow labels in a call placeholder.
This would mean that we generate different CODE_LABEL insns for
each alternative in the call placeholder because same insn can't
be in different chains. As long as the only jumps to the label are
from within the same call placeholder this is fine but there may
well be jumps from outside the call placeholder. These jumps would
have a hard time to figure out what the label number is that they
should jump to. Think of code like this:
struct task_struct {
int (*notifier)(void);
};
int __dequeue_signal(void )
{
goto start;
(
({
start:
(struct task_struct *) 0x4711;
goto start;
})->notifier
)();
return 0;
}
This would mean that we'd have to attach something like a LABEL_PLACEHOLDER
insn to the tree. This insn would contain all real CODE_LABEL insns
emitted for the label in different chains. This will upon another can
of worms. After all I don't think this approach is the right thing.
regards Christian
--
THAT'S ALL FOLKS!