Hi Ben, On Tue, Jan 27, 2015 at 3:06 PM, Ben Langmuir <[email protected]> wrote:
> Hi Richard, > > Could you take a look at this patch? I haven’t messed with capturing in a > long time and I don’t want to break it ;-) LGTM as a diagnostics improvement (but see below). > Don't mistakenly capture byref in block nested in lambda > > Even if an enclosing lambda captures a variable by reference, we > capture > it by *copy* in a block unless the variable itself was declared with a > reference type. Codegen was already correct, but we were not diagnosing > attempts to modify the variable in Sema. > Hmm, I think I'm missing something here -- it looks like we would diagnose it, but we'd use a suboptimal diagnostic: CheckForModifiableLvalue would diagnose as err_typecheck_assign_const in this case. > This also fixes a crash on invalid when trying to modify a variable > with > non-trivial copy constructor and assignment operator in such a > situation. > I can't reproduce this crash with current trunk, assuming this is supposed to be covered by the uses of 'A' in test7 in SemaCXX/blocks.cpp.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
