leonardchan added a comment.

In D55868#1358208 <https://reviews.llvm.org/D55868#1358208>, @rjmccall wrote:

> Yeah, I would recommend splitting the `APFixedPoint` in `APValue` changes 
> into a separate patch.


Added D56746 <https://reviews.llvm.org/D56746> as a child revision of this that 
has the `APValue` changes.



================
Comment at: clang/lib/AST/ExprConstant.cpp:9927
       }
       return Success(-Value, E);
     }
----------------
ebevhan wrote:
> I think I've mentioned this before, but just as a reminder; this doesn't 
> perform correctly for saturation.
Added a `negate()` method to `APFixedPoint` which handles this now and accounts 
for saturation.


================
Comment at: clang/lib/AST/ExprConstant.cpp:9979
+    APFixedPoint Result =
+        LHSFX.getFixedPoint().add(RHSFX.getFixedPoint()).convert(ResultFXSema);
+    return Success(Result, E);
----------------
ebevhan wrote:
> Perhaps this should call HandleOverflow (or do something else) to signal that 
> overflow occurred. HandleOverflow only seems to emit a note, though, but I 
> think it should probably be a warning.
> 
> Maybe for casts as well? Might get double warnings then, though.
Done. Double warnings don't seem to appear though.


================
Comment at: clang/lib/Basic/FixedPoint.cpp:25
   bool Upscaling = DstScale > getScale();
+  bool Overflowed = false;
 
----------------
ebevhan wrote:
> I think it's a bit cleaner if you avoid this variable and simply assign 
> `Overflow` directly here, with the 'else' cases below replaced with `else if 
> (Overflow)`.
> 
> That style isn't cleaner in `add` if you use the APInt add_ov functions 
> though, so maybe it's better to keep it this way for consistency.
I'm not really bothered much by either style, but if we want to be consistent 
with the APInt overflow operations, we could just make the overflow parameter a 
reference also while it's still new/under work.


Repository:
  rC Clang

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

https://reviews.llvm.org/D55868



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

Reply via email to