Skip to content

Commit 6cbc8d6

Browse files
committed
Refactor MSVC compatibility checks in ParsePostfixExpressionSuffix to consolidate Windows-specific logic under a single conditional
1 parent 59a2d7a commit 6cbc8d6

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

clang/lib/Parse/ParseExpr.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2151,11 +2151,10 @@ Parser::ParsePostfixExpressionSuffix(ExprResult LHS) {
21512151
SourceLocation RParLoc = Tok.getLocation();
21522152
LHS = Actions.ActOnCallExpr(getCurScope(), Fn, Loc, ArgExprs, RParLoc,
21532153
ExecConfig);
2154-
#ifdef _WIN32
2155-
if (LHS.isInvalid() && Fn->getStmtClass() != Expr::ParenExprClass) {
2156-
#else
2157-
if (LHS.isInvalid()) {
2158-
#endif
2154+
const bool IsMSCompat =
2155+
getLangOpts().MicrosoftExt || getLangOpts().MSVCCompat;
2156+
if (LHS.isInvalid() &&
2157+
(!IsMSCompat || Fn->getStmtClass() != Expr::ParenExprClass)) {
21592158
ArgExprs.insert(ArgExprs.begin(), Fn);
21602159
LHS =
21612160
Actions.CreateRecoveryExpr(Fn->getBeginLoc(), RParLoc, ArgExprs);

0 commit comments

Comments
 (0)