[Lldb-commits] [lldb] [lldb] Negate `is_signed` variable for argument `isUnsigned` in TypeSystemClang.cpp (PR #120794)
Ilia Kuklin via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 23 04:32:41 PST 2024
https://github.com/kuilpd updated https://github.com/llvm/llvm-project/pull/120794
>From b5cb9a262a5e1bdb19eb72e7e357c98e90fa9f4e Mon Sep 17 00:00:00 2001
From: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: Sat, 21 Dec 2024 02:04:35 +0500
Subject: [PATCH 1/2] Negate is_signed variable for argument isUnsigned
---
lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
index 3ec25a2e8aa2df..06c04c992efc09 100644
--- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
@@ -8534,7 +8534,7 @@ clang::EnumConstantDecl *TypeSystemClang::AddEnumerationValueToEnumerationType(
bool is_signed = false;
underlying_type.IsIntegerType(is_signed);
- llvm::APSInt value(enum_value_bit_size, is_signed);
+ llvm::APSInt value(enum_value_bit_size, !is_signed);
value = enum_value;
return AddEnumerationValueToEnumerationType(enum_type, decl, name, value);
>From aebf2bd2f57da5e40ee8a81841391da1a04801f1 Mon Sep 17 00:00:00 2001
From: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: Mon, 23 Dec 2024 17:31:56 +0500
Subject: [PATCH 2/2] Add a test to TestTypeSystemClang
---
lldb/unittests/Symbol/TestTypeSystemClang.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/lldb/unittests/Symbol/TestTypeSystemClang.cpp b/lldb/unittests/Symbol/TestTypeSystemClang.cpp
index 0733e42bb46331..0a9cfc77e68800 100644
--- a/lldb/unittests/Symbol/TestTypeSystemClang.cpp
+++ b/lldb/unittests/Symbol/TestTypeSystemClang.cpp
@@ -313,6 +313,16 @@ TEST_F(TestTypeSystemClang, TestGetEnumIntegerTypeBasicTypes) {
}
}
+TEST_F(TestTypeSystemClang, TestEnumerationValueSign) {
+ CompilerType enum_type = m_ast->CreateEnumerationType(
+ "my_enum_signed", m_ast->GetTranslationUnitDecl(),
+ OptionalClangModuleID(), Declaration(),
+ m_ast->GetBasicType(lldb::eBasicTypeSignedChar), false);
+ auto *enum_decl = m_ast->AddEnumerationValueToEnumerationType(
+ enum_type, nullptr, "minus_one", -1, 8);
+ EXPECT_TRUE(enum_decl->getInitVal().isSigned());
+}
+
TEST_F(TestTypeSystemClang, TestOwningModule) {
auto holder =
std::make_unique<clang_utils::TypeSystemClangHolder>("module_ast");
More information about the lldb-commits
mailing list