On Thu, Feb 15, 2018 at 4:25 PM, Josh Poimboeuf jpoimboe@redhat.com wrote:
On Thu, Feb 15, 2018 at 04:01:57PM +0100, Arnd Bergmann wrote:
On Wed, Feb 14, 2018 at 11:45 PM, Josh Poimboeuf jpoimboe@redhat.com wrote:
On Wed, Feb 14, 2018 at 04:24:12PM -0600, Josh Poimboeuf wrote:
On Wed, Feb 14, 2018 at 04:11:15PM +0100, Arnd Bergmann wrote:
Ok, I expected something like that. GCC "undefined behavior" strikes again.
Kees, I suppose you'll need to obfuscate the code to stay one step ahead of GCC.
While this may be an objtool bug, I might not fix it because it served a useful purpose here in finding GCC crap.
I would have expected an actual NULL pointer dereference to remain in the function though, or at least another trapping instruction.
Can you share the config for this one?
Would be interesting to analyze that config to understand what options are causing GCC to do that. I don't see this "optimization" with my config.
This seems like a very rare combination, the flags I need to reproduce are "gcc -O2 -mno-red-zone -mpreferred-stack-boundary=3 -march=nocona", however I do see the same behavior with every gcc version since 4.8!
Aside from -march=nocona, also bonnell, atom, silvermont, slm, and knl show this, but none of the modern microarchitectures do.
Arnd