hokein commandeered this revision.
hokein added a reviewer: ilya-biryukov.
hokein added a comment.

This patch contains too many changes, most of them are just NFC, it likely 
takes a long time to do a full review.

I actually did an review for the original patch. I have highlighted places (see 
me comments) that I'm uncertain and need another look, other places are NFC.



================
Comment at: clang/include/clang/AST/Expr.h:4081
-    : Expr(ConvertVectorExprClass, DstType, VK, OK,
-           DstType->isDependentType(),
-           DstType->isDependentType() || SrcExpr->isValueDependent(),
----------------
!  behavior change change, now the `ConvertVectorExpr::TypeDependent = 
DstType->isDependentType() | SrcExpr->isDependentType()`.


================
Comment at: clang/include/clang/AST/Expr.h:4139
-             bool TypeDependent, bool ValueDependent)
-    : Expr(ChooseExprClass, t, VK, OK, TypeDependent, ValueDependent,
-           (cond->isInstantiationDependent() ||
----------------
! this needs careful review, the ChooseExpr bits are from different sources:

- constructor here
- 
[`clang/lib/Sema/SemaPseudoObject.cpp`](https://github.com/llvm/llvm-project/blob/master/clang/lib/Sema/SemaPseudoObject.cpp#L170)
- 
[`clang/lib/AST/ASTImporter.cpp`](https://github.com/llvm/llvm-project/blob/master/clang/lib/AST/ASTImporter.cpp#L6347)
- 
[`clang/lib/Sema/SemaExpr.cpp`](https://github.com/llvm/llvm-project/blob/master/clang/lib/Sema/SemaExpr.cpp#L14207)

 


================
Comment at: clang/include/clang/AST/Expr.h:4250
             SourceLocation RPLoc, QualType t, bool IsMS)
-      : Expr(VAArgExprClass, t, VK_RValue, OK_Ordinary, t->isDependentType(),
-             false, (TInfo->getType()->isInstantiationDependentType() ||
----------------
! the implementation in the original patch doesn't seem to correct to me, I 
rewrote it, need another review..


================
Comment at: clang/include/clang/AST/Expr.h:5031
-             CommonInit->isValueDependent() || ElementInit->isValueDependent(),
-             T->isInstantiationDependentType(),
-             CommonInit->containsUnexpandedParameterPack() ||
----------------
! behavior change here, now `ArrayInitLoopExpr::Instantiation =  
T->isInstantiationDependentType() |  CommonInit->isInstantiationDependentType() 
|  ElementInit->isInstantiationDependentType()`.


================
Comment at: clang/include/clang/AST/Expr.h:5650
-    : Expr(AsTypeExprClass, DstType, VK, OK,
-           DstType->isDependentType(),
-           DstType->isDependentType() || SrcExpr->isValueDependent(),
----------------
! behavior change here, now `Expr::TypeDependent = DstType->isDependentType() | 
SrcExpr->isTypeDependent()`.


================
Comment at: clang/include/clang/AST/Expr.h:1537
     CharacterLiteralBits.Kind = kind;
+    setDependence(ExprDependence::None);
   }
----------------
this is not needed indeed as the default value is 0, but I'd keep it here to 
make it more explicit.


================
Comment at: clang/include/clang/AST/ExprCXX.h:2742
-      : Expr(ArrayTypeTraitExprClass, ty, VK_RValue, OK_Ordinary,
-             false, queried->getType()->isDependentType(),
-             (queried->getType()->isInstantiationDependentType() ||
----------------
! behavior change here, now we the `ValueDependent`, `UnexpandedPack` takes 
`dimension` into account as well.


================
Comment at: clang/lib/AST/ExprCXX.cpp:444
-          SC, Context.OverloadTy, VK_LValue, OK_Ordinary, KnownDependent,
-          KnownDependent,
-          (KnownInstantiationDependent || NameInfo.isInstantiationDependent() 
||
----------------
! this change is not trivial, need an review.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73638/new/

https://reviews.llvm.org/D73638



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to