Pull in r320396 from upstream clang trunk (by Malcolm Parsons):
[Sema] Fix crash in unused-lambda-capture warning for VLAs Summary: Clang was crashing when diagnosing an unused-lambda-capture for a VLA because From.getVariable() is null for the capture of a VLA bound. Warning about the VLA bound capture is not helpful, so only warn for the VLA itself. Fixes: PR35555 Reviewers: aaron.ballman, dim, rsmith Reviewed By: aaron.ballman, dim Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D41016 This fixes a segfault when building recent audio/zynaddsubfx port versions. Reported by: hps MFC after: 3 days
This commit is contained in:
parent
06c47d48dc
commit
9ce629675f
contrib/llvm/tools/clang
@ -560,6 +560,7 @@ public:
|
||||
void markUsed(bool IsODRUse) { (IsODRUse ? ODRUsed : NonODRUsed) = true; }
|
||||
|
||||
VarDecl *getVariable() const {
|
||||
assert(isVariableCapture());
|
||||
return VarAndNestedAndThis.getPointer();
|
||||
}
|
||||
|
||||
|
@ -1469,6 +1469,9 @@ void Sema::DiagnoseUnusedLambdaCapture(const LambdaScopeInfo::Capture &From) {
|
||||
if (CaptureHasSideEffects(From))
|
||||
return;
|
||||
|
||||
if (From.isVLATypeCapture())
|
||||
return;
|
||||
|
||||
auto diag = Diag(From.getLocation(), diag::warn_unused_lambda_capture);
|
||||
if (From.isThisCapture())
|
||||
diag << "'this'";
|
||||
|
Loading…
x
Reference in New Issue
Block a user