Author: rsmith Date: Tue Jun 11 10:50:37 2019 New Revision: 363088 URL: http://llvm.org/viewvc/llvm-project?rev=363088&view=rev Log: Remove redundant check for whether a DeclRefExpr that names a capture constitutes an odr-use.
We now track this accurately on the DeclRefExpr. Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=363088&r1=363087&r2=363088&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGExpr.cpp (original) +++ cfe/trunk/lib/CodeGen/CGExpr.cpp Tue Jun 11 10:50:37 2019 @@ -2463,16 +2463,7 @@ LValue CodeGenFunction::EmitDeclRefLValu // A DeclRefExpr for a reference initialized by a constant expression can // appear without being odr-used. Directly emit the constant initializer. VD->getAnyInitializer(VD); - const auto *BD = dyn_cast_or_null<BlockDecl>(CurCodeDecl); - if (E->isNonOdrUse() == NOUR_Constant && VD->getType()->isReferenceType() && - // Do not emit if it is private OpenMP variable. - // FIXME: This should be handled in odr-use marking, not here. - !(E->refersToEnclosingVariableOrCapture() && - ((CapturedStmtInfo && - (LocalDeclMap.count(VD->getCanonicalDecl()) || - CapturedStmtInfo->lookup(VD->getCanonicalDecl()))) || - LambdaCaptureFields.lookup(VD->getCanonicalDecl()) || - (BD && BD->capturesVariable(VD))))) { + if (E->isNonOdrUse() == NOUR_Constant && VD->getType()->isReferenceType()) { llvm::Constant *Val = ConstantEmitter(*this).emitAbstract(E->getLocation(), *VD->evaluateValue(), _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits