pmatos created this revision. pmatos added a reviewer: efriedma. pmatos added a subscriber: cfe-commits.
Ensure sizeof expression context is partially evaluated so that potential typeof operators inside are evaluated if necessary. Fixes PR31042. https://reviews.llvm.org/D26843 Files: lib/Parse/ParseExpr.cpp Index: lib/Parse/ParseExpr.cpp =================================================================== --- lib/Parse/ParseExpr.cpp +++ lib/Parse/ParseExpr.cpp @@ -1881,7 +1881,10 @@ if (OpTok.isOneOf(tok::kw_alignof, tok::kw__Alignof)) Diag(OpTok, diag::warn_cxx98_compat_alignof); - EnterExpressionEvaluationContext Unevaluated(Actions, Sema::Unevaluated, + EnterExpressionEvaluationContext Unevaluated(Actions, + OpTok.is(tok::kw_sizeof) ? + Sema::PotentiallyEvaluated : + Sema::Unevaluated, Sema::ReuseLambdaContextDecl); bool isCastExpr;
Index: lib/Parse/ParseExpr.cpp =================================================================== --- lib/Parse/ParseExpr.cpp +++ lib/Parse/ParseExpr.cpp @@ -1881,7 +1881,10 @@ if (OpTok.isOneOf(tok::kw_alignof, tok::kw__Alignof)) Diag(OpTok, diag::warn_cxx98_compat_alignof); - EnterExpressionEvaluationContext Unevaluated(Actions, Sema::Unevaluated, + EnterExpressionEvaluationContext Unevaluated(Actions, + OpTok.is(tok::kw_sizeof) ? + Sema::PotentiallyEvaluated : + Sema::Unevaluated, Sema::ReuseLambdaContextDecl); bool isCastExpr;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits