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

via flang-commits flang-commits at lists.llvm.org
Wed Jan 24 16:23:11 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()) {
----------------
vdonaldson wrote:

So the two cases are not then strictly comparable. Maybe the best choice is to leave the compile time format.h code as is and go with new code in the runtime.

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


More information about the flang-commits mailing list