[LLVMbugs] [Bug 18780] Lambda inside lambda doesn't capture the variable
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Sun Feb 9 02:48:42 PST 2014
http://llvm.org/bugs/show_bug.cgi?id=18780
jonathan.sauer at gmx.de changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |jonathan.sauer at gmx.de
Resolution|--- |INVALID
--- Comment #2 from jonathan.sauer at gmx.de ---
The lambda function that is assigned to a->on_run captures on_create's
parameter <a> by reference instead of by value, i.e. it accesses a position in
the stack which can and will be reused later on. To test this add a function
<bar> that uses some stack space:
void bar()
{
int s[] = { 1, 2, 3, 4, 5 };
}
and then call it before on_run:
a.a = 1;
bar();
a.on_run();
Capturing <a> by value should make your code work as expected (it does on my
computer). Otherwise please feel free to reopen this bug.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140209/2ae58403/attachment.html>
More information about the llvm-bugs
mailing list