On 19/09/16 22:00, Eugene V. Lyubimkin wrote: > On 18.09.2016 22:40, Eugene V. Lyubimkin wrote: >> Thank you. Turned out it is reproducible in release build (at the least on >> armel porterbox), but not in debug build. >> >> I'll look into it. > > Ok, something fishy is going on with lambda captures. I believe I found an > issue in either std::function or GCC > optimizer. Looks like a captured value ("this" in this case) is uninitialized > or corrupted, but only if previous lambda > captures a certain amount of variables, no matter was it called or not. Ugh. > I managed to reduce > the code to the following small example:
Cool! Can you file a bug against g++-6 or libstdc++6 (or whatever you think is appropriate)? Have you found what optimization flag causes this? If it builds with -O1 or disabling some specific optimization, perhaps you can temporarily use that to avoid autoremoval from testing. Thanks, Emilio