[flang-commits] [flang] [flang] Make the length size matched in comparison (NFC) (PR #73280)
via flang-commits
flang-commits at lists.llvm.org
Thu Nov 23 20:01:32 PST 2023
https://github.com/kkwli created https://github.com/llvm/llvm-project/pull/73280
The template function call `CheckDescriptorEqInt(length.get(), 16)` is deduced to have `INT_T` equal to `std::int32_t` instead of `std::int64_t`, but the length descriptor points to a 64-byte storage. The comparison does not work in a big endian.
>From 7e7815699c210bf5859e9ee53555add655ef66b7 Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Thu, 23 Nov 2023 22:28:59 -0500
Subject: [PATCH] [flang] Make the length size matched in comparison (NFC)
---
flang/unittests/Runtime/CommandTest.cpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/flang/unittests/Runtime/CommandTest.cpp b/flang/unittests/Runtime/CommandTest.cpp
index 9f66c7924c86e3c..2b648b31666aeb0 100644
--- a/flang/unittests/Runtime/CommandTest.cpp
+++ b/flang/unittests/Runtime/CommandTest.cpp
@@ -171,7 +171,7 @@ class CommandFixture : public ::testing::Test {
std::string spaces(value->ElementBytes(), ' ');
CheckDescriptorEqStr(value.get(), spaces);
- CheckDescriptorEqInt(length.get(), 0);
+ CheckDescriptorEqInt<std::int64_t>(length.get(), 0);
if (errStr) {
std::string paddedErrStr(GetPaddedStr(errStr, err->ElementBytes()));
@@ -193,7 +193,7 @@ class CommandFixture : public ::testing::Test {
std::string spaces(value->ElementBytes(), ' ');
CheckDescriptorEqStr(value.get(), spaces);
- CheckDescriptorEqInt(length.get(), 0);
+ CheckDescriptorEqInt<std::int64_t>(length.get(), 0);
if (errStr) {
std::string paddedErrStr(GetPaddedStr(errStr, err->ElementBytes()));
@@ -294,7 +294,7 @@ TEST_F(SeveralArguments, ArgValueTooShort) {
RTNAME(GetCommandArgument)(1, tooShort.get(), length.get(), errMsg.get()),
-1);
- CheckDescriptorEqInt(length.get(), 16);
+ CheckDescriptorEqInt<std::int64_t>(length.get(), 16);
std::string expectedErrMsg{
GetPaddedStr("Value too short", errMsg->ElementBytes())};
CheckDescriptorEqStr(errMsg.get(), expectedErrMsg);
@@ -320,7 +320,7 @@ TEST_F(SeveralArguments, CommandErrMsgTooShort) {
std::string spaces(value->ElementBytes(), ' ');
CheckDescriptorEqStr(value.get(), spaces);
- CheckDescriptorEqInt(length.get(), 0);
+ CheckDescriptorEqInt<std::int64_t>(length.get(), 0);
CheckDescriptorEqStr(errMsg.get(), "Mis");
}
@@ -351,7 +351,7 @@ TEST_F(OnlyValidArguments, CommandValueTooShort) {
CheckDescriptorEqStr(
tooShort.get(), "aProgram -f has/a/few/slashes has\\a\\few\\backslashe");
- CheckDescriptorEqInt(length.get(), 51);
+ CheckDescriptorEqInt<std::int64_t>(length.get(), 51);
OwningPtr<Descriptor> errMsg{CreateEmptyCharDescriptor()};
ASSERT_NE(errMsg, nullptr);
@@ -377,7 +377,7 @@ TEST_F(OnlyValidArguments, GetCommandCanTakeNull) {
value->ElementBytes()));
EXPECT_EQ(0, RTNAME(GetCommand)(nullptr, length.get(), nullptr));
- CheckDescriptorEqInt(length.get(), 51);
+ CheckDescriptorEqInt<std::int64_t>(length.get(), 51);
}
TEST_F(OnlyValidArguments, GetCommandShortLength) {
More information about the flang-commits
mailing list