[flang-commits] [flang] [flang][runtime] Fix integer overflow check in FORMAT (PR #79368)

Peter Klausler via flang-commits flang-commits at lists.llvm.org
Wed Jan 24 16:03:24 PST 2024


================
@@ -214,15 +215,13 @@ template <typename CHAR> void FormatValidator<CHAR>::NextToken() {
   case '7':
   case '8':
   case '9': {
-    int64_t lastValue;
     const CHAR *lastCursor;
     integerValue_ = 0;
     bool overflow{false};
     do {
-      lastValue = integerValue_;
       lastCursor = cursor_;
       integerValue_ = 10 * integerValue_ + c - '0';
-      if (lastValue > integerValue_) {
+      if (integerValue_ > std::numeric_limits<int>::max()) {
----------------
klausler wrote:

`integerValue_` hasn't overflowed its 64-bit range, and can be compared to the max 32-bit value safely.

https://github.com/llvm/llvm-project/pull/79368


More information about the flang-commits mailing list