https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66086

--- Comment #2 from Andrea Griffini <agriff at tin dot it> ---
(In reply to Andrea Griffini from comment #1)
> Not sure if this helps but I found that when compiling -m32 -O -fno-tree-dce
> the output of the program becomes correct but the generated code is not.
> 
> More specifically the non-inlined version of `doit` contains no
> initialization of the allocated memory, but the inlined call in `main` does
> the allocation and does NOT initialize the memory but loads the expected
> result 3.14 directly in the stack before calling printf.
> 
> Without -fno-tree-dce the inilined version simply reads the memory instead
> (that has not been initialized) and produces the wrong output.

Sorry... this happens at -O2, not at -O

Reply via email to