On Fri, May 13, 2016 at 11:25:28PM +0200, Cyril Bonté wrote: > > In the mean time, there may be a -fsomething option to disable a > > bogus optimization which causes this, but that's not easy to spot > > as it will depend on any side effect of other code :-/ > > I was trying to identify one, and indeed, once I add "-fno-tree-sra", it > works as expected.
This one already exists in gcc 4 and 5, so its implementation might be bogus in 6. The doc says : -ftree-sra Perform scalar replacement of aggregates. This pass replaces structure references with scalars to prevent committing structures to memory too early. This flag is enabled by default at -O and higher. Thus I suspect that by delaying memory references a bit too much they end up completely forgetting to commit the changes :-/ Willy