mibintc marked 3 inline comments as done.
mibintc added a comment.

In D76384#1929774 <https://reviews.llvm.org/D76384#1929774>, @mibintc wrote:

> There's a bug in this patch that i haven't solved yet. I think it's just 1 
> bug. The bug is that the AST statement visitor is going to the "fallback" 
> instead of the right destination when walking CompoundAssignmentOperator.  
> This patch collapses CompoundAssignmentOperator class into BinaryOperator 
> class.  In a spot check, i think all the failing tests are because the 
> Visitor walk isn't working correctly for CompoundAssign (for example += ). 
> These are the test fails reported by check-clang in my sandbox,
>  Failing Tests (15):
>
>   Clang :: Analysis/loopexit-cfg-output.cpp
>   Clang :: CXX/drs/dr2xx.cpp
>   Clang :: CXX/expr/expr.const/p2-0x.cpp
>   Clang :: 
> CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.capture/p17.cpp
>   Clang :: CodeGen/ffp-contract-fast-option.cpp
>   Clang :: CodeGenCXX/const-init-cxx1y.cpp
>   Clang :: CodeGenCXX/const-init-cxx2a.cpp
>   Clang :: CodeGenCXX/non-const-init-cxx2a.cpp
>   Clang :: Sema/warn-unreachable.c
>   Clang :: Sema/warn-unsequenced.c
>   Clang :: SemaCXX/constant-expression-cxx1y.cpp
>   Clang :: SemaCXX/constant-expression-cxx2a.cpp
>   Clang :: SemaCXX/decomposed-condition.cpp
>   Clang :: SemaCXX/integer-overflow.cpp
>   Clang :: SemaCXX/warn-unsequenced.cpp


The new revision corrects all these fails. i have a couple questions about test 
cases, i've inline those in the test case modification. Also need to do 
clang-format and also some changes to CXXCallOperator to remove redundant 
accessor



================
Comment at: clang/include/clang/AST/ExprCXX.h:168
   // operations on floating point types.
   void setFPFeatures(FPOptions F) {
+    FPFeatures = F;
----------------
i can get rid of these 2 accessor functions, we get them from CallExpr


================
Comment at: clang/test/Analysis/loopexit-cfg-output.cpp:211
 // CHECK:       [B3]
-// CHECK-NEXT:   1: j
-// CHECK-NEXT:   2: 2
-// CHECK-NEXT:   3: [B3.1] += [B3.2]
+// CHECK-NEXT:   1: 2
+// CHECK-NEXT:   2: j
----------------
With these changes, the blocks print out in a different order but the semantic 
meaning appears to be the same. Is this difference acceptable? 


================
Comment at: clang/test/Sema/warn-unreachable.c:86
   case 8:
-    i
-      +=        // expected-warning {{will never be executed}}
+    i           // expected-warning {{will never be executed}}
+      +=
----------------
The srcpos for compound assignment is now the same as srcpos for ordinary 
binary operator, so i changed the test case to move the diagnostic,  ok?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76384



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

Reply via email to