[llvm] [Support] Recognise the '+' char for positive integers (PR #135856)
Ebuka Ezike via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 15 14:08:59 PDT 2025
https://github.com/da-viper created https://github.com/llvm/llvm-project/pull/135856
Fixes https://github.com/llvm/llvm-project/issues/45326
>From 56fee55191a1deb4c5b35f0f3ed8f4608004bd4a Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimyah1 at gmail.com>
Date: Tue, 15 Apr 2025 12:21:59 +0100
Subject: [PATCH] [Support] Recognise the '+' char for positive integers
Fixes https://github.com/llvm/llvm-project/issues/45326
Signed-off-by: Ebuka Ezike <yerimyah1 at gmail.com>
---
llvm/lib/Support/StringRef.cpp | 3 +++
llvm/unittests/ADT/StringRefTest.cpp | 28 +++++++++++++++-------------
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/llvm/lib/Support/StringRef.cpp b/llvm/lib/Support/StringRef.cpp
index 4f5fcb4857e80..bdf7a9aa5c7e0 100644
--- a/llvm/lib/Support/StringRef.cpp
+++ b/llvm/lib/Support/StringRef.cpp
@@ -409,6 +409,9 @@ static unsigned GetAutoSenseRadix(StringRef &Str) {
bool llvm::consumeUnsignedInteger(StringRef &Str, unsigned Radix,
unsigned long long &Result) {
+ // Consume the + value
+ Str.consume_front("+");
+
// Autosense radix if not specified.
if (Radix == 0)
Radix = GetAutoSenseRadix(Str);
diff --git a/llvm/unittests/ADT/StringRefTest.cpp b/llvm/unittests/ADT/StringRefTest.cpp
index ec9cdc197597d..55d222a915ab5 100644
--- a/llvm/unittests/ADT/StringRefTest.cpp
+++ b/llvm/unittests/ADT/StringRefTest.cpp
@@ -622,19 +622,21 @@ TEST(StringRefTest, Hashing) {
struct UnsignedPair {
const char *Str;
uint64_t Expected;
-} Unsigned[] =
- { {"0", 0}
- , {"255", 255}
- , {"256", 256}
- , {"65535", 65535}
- , {"65536", 65536}
- , {"4294967295", 4294967295ULL}
- , {"4294967296", 4294967296ULL}
- , {"18446744073709551615", 18446744073709551615ULL}
- , {"042", 34}
- , {"0x42", 66}
- , {"0b101010", 42}
- };
+} Unsigned[] = {{"0", 0},
+ {"255", 255},
+ {"256", 256},
+ {"65535", 65535},
+ {"65536", 65536},
+ {"4294967295", 4294967295ULL},
+ {"4294967296", 4294967296ULL},
+ {"18446744073709551615", 18446744073709551615ULL},
+ {"042", 34},
+ {"0x42", 66},
+ {"0b101010", 42},
+ {"+42", 42},
+ {"+042", 34},
+ {"+0x42", 66},
+ {"+0b101010", 42}};
struct SignedPair {
const char *Str;
More information about the llvm-commits
mailing list