Code generation problem with gcc-4.6.1

David Kastrup dak@gnu.org
Sun Nov 27 13:41:00 GMT 2011


David Kastrup <dak@gnu.org> writes:

P.S.:

> A workaround has been compiling with the options
>
> -fkeep-inline-functions -fno-crossjumping
>
> I don't know which of the two options is responsible for avoiding the
> problem but can test if it makes a difference to you.

It is -fkeep-inline-functions that does the trick.  The generated code
does not generate a _jump_ to Grob::internal_set_property in this case
(for whatever fuzzy reason), but rather a _call_, and with the right
parameters.

Compilation options I forgot to mention are -O2 -fwrapv.  Unfortunately,
an attempt of extracting a toy version of this bug (by taking the
original code and replacing all relevant calls and structures with dummy
declarations in a similar spirit) has not been successful so far, as the
generated code of the toy version is ok even when jumping instead of
calling.

So the problem appears to trigger only under quite specific conditions.

-- 
David Kastrup



More information about the Gcc-bugs mailing list