@@ -457,7 +457,8 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
457
457
_S->refersToMatrixElement = S->refersToMatrixElement ();
458
458
_S->hasPlaceholderType = S->hasPlaceholderType ();
459
459
_S->isIncomplete = S->isIncomplete ();
460
- _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
460
+ if (!S->isImplicitAccess ())
461
+ _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
461
462
_S->rowIdx = static_cast <AST::Expr*>(WalkExpression (S->getRowIdx ()));
462
463
_S->columnIdx = static_cast <AST::Expr*>(WalkExpression (S->getColumnIdx ()));
463
464
_Expr = _S;
@@ -516,7 +517,8 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
516
517
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject ();
517
518
_S->refersToMatrixElement = S->refersToMatrixElement ();
518
519
_S->hasPlaceholderType = S->hasPlaceholderType ();
519
- _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
520
+ if (!S->isImplicitAccess ())
521
+ _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
520
522
_S->hasQualifier = S->hasQualifier ();
521
523
_S->hasTemplateKeyword = S->hasTemplateKeyword ();
522
524
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs ();
@@ -1048,7 +1050,8 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
1048
1050
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject ();
1049
1051
_S->refersToMatrixElement = S->refersToMatrixElement ();
1050
1052
_S->hasPlaceholderType = S->hasPlaceholderType ();
1051
- _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
1053
+ if (!S->isImplicitAccess ())
1054
+ _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
1052
1055
_S->updater = static_cast <AST::InitListExpr*>(WalkExpression (S->getUpdater ()));
1053
1056
_Expr = _S;
1054
1057
break ;
@@ -1190,7 +1193,8 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
1190
1193
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject ();
1191
1194
_S->refersToMatrixElement = S->refersToMatrixElement ();
1192
1195
_S->hasPlaceholderType = S->hasPlaceholderType ();
1193
- _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
1196
+ if (!S->isImplicitAccess ())
1197
+ _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
1194
1198
_S->numElements = S->getNumElements ();
1195
1199
_S->containsDuplicateElements = S->containsDuplicateElements ();
1196
1200
_S->isArrow = S->isArrow ();
@@ -2218,7 +2222,8 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
2218
2222
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject ();
2219
2223
_S->refersToMatrixElement = S->refersToMatrixElement ();
2220
2224
_S->hasPlaceholderType = S->hasPlaceholderType ();
2221
- _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
2225
+ if (!S->isImplicitAccess ())
2226
+ _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
2222
2227
_S->hasQualifier = S->hasQualifier ();
2223
2228
_S->isArrow = S->isArrow ();
2224
2229
_S->destroyedType = GetQualifiedType (S->getDestroyedType ());
@@ -2426,7 +2431,8 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
2426
2431
_S->refersToMatrixElement = S->refersToMatrixElement ();
2427
2432
_S->hasPlaceholderType = S->hasPlaceholderType ();
2428
2433
_S->isImplicitAccess = S->isImplicitAccess ();
2429
- _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
2434
+ if (!S->isImplicitAccess ())
2435
+ _S->base = static_cast <AST::Expr*>(WalkExpression (S->getBase ()));
2430
2436
_S->baseType = GetQualifiedType (S->getBaseType ());
2431
2437
_S->isArrow = S->isArrow ();
2432
2438
_S->firstQualifierFoundInScope = static_cast <AST::Declaration*>(WalkDeclaration (S->getFirstQualifierFoundInScope ()));
0 commit comments