https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/120225
>From c48e53626dd7a54d3b78c86cb2667be4009411a2 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Tue, 17 Dec 2024 12:16:54 +0000 Subject: [PATCH 1/2] [lldb] Remove references to llvm-gcc --- .../Plugins/SymbolFile/DWARF/DWARFUnit.cpp | 16 ++------- .../Plugins/SymbolFile/DWARF/DWARFUnit.h | 1 - .../conditional_break/TestConditionalBreak.py | 2 +- .../TestDataFormatterCpp.py | 2 +- .../TestDataFormatterSkipSummary.py | 21 ----------- .../API/lang/cpp/namespace/TestNamespace.py | 2 +- .../SymbolFile/DWARF/DWARFUnitTest.cpp | 35 ------------------- 7 files changed, 5 insertions(+), 74 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp index 07de23f9de2fd6..50f2b0e2a279b7 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp @@ -736,15 +736,9 @@ bool DWARFUnit::LinkToSkeletonUnit(DWARFUnit &skeleton_unit) { return false; // Already linked to a different unit. } -bool DWARFUnit::Supports_DW_AT_APPLE_objc_complete_type() { - return GetProducer() != eProducerLLVMGCC; -} +bool DWARFUnit::Supports_DW_AT_APPLE_objc_complete_type() { return true; } -bool DWARFUnit::DW_AT_decl_file_attributes_are_invalid() { - // llvm-gcc makes completely invalid decl file attributes and won't ever be - // fixed, so we need to know to ignore these. - return GetProducer() == eProducerLLVMGCC; -} +bool DWARFUnit::DW_AT_decl_file_attributes_are_invalid() { return false; } bool DWARFUnit::Supports_unnamed_objc_bitfields() { if (GetProducer() == eProducerClang) @@ -768,10 +762,6 @@ void DWARFUnit::ParseProducerInfo() { llvm::StringRef(R"(swiftlang-([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?))")); static const RegularExpression g_clang_version_regex( llvm::StringRef(R"(clang-([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?))")); - static const RegularExpression g_llvm_gcc_regex( - llvm::StringRef(R"(4\.[012]\.[01] )" - R"(\(Based on Apple Inc\. build [0-9]+\) )" - R"(\(LLVM build [\.0-9]+\)$)")); llvm::SmallVector<llvm::StringRef, 3> matches; if (g_swiftlang_version_regex.Execute(producer, &matches)) { @@ -783,8 +773,6 @@ void DWARFUnit::ParseProducerInfo() { m_producer = eProducerClang; } else if (producer.contains("GNU")) { m_producer = eProducerGCC; - } else if (g_llvm_gcc_regex.Execute(producer)) { - m_producer = eProducerLLVMGCC; } } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h index 0a0019c25836b4..5d032fefb2a206 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h @@ -34,7 +34,6 @@ enum DWARFProducer { eProducerInvalid = 0, eProducerClang, eProducerGCC, - eProducerLLVMGCC, eProducerSwift, eProducerOther }; diff --git a/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py b/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py index 725e5d4722dd18..9852df883ff277 100644 --- a/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py +++ b/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py @@ -10,7 +10,7 @@ # rdar://problem/8532131 # lldb not able to digest the clang-generated debug info correctly with respect to function name # -# This class currently fails for clang as well as llvm-gcc. +# This class currently fails for clang. class ConditionalBreakTestCase(TestBase): diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py index 6fa15d9e5ee606..8d840a03d064af 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py @@ -67,7 +67,7 @@ def cleanup(): ) # gcc4.2 on Mac OS X skips typedef chains in the DWARF output - if self.getCompiler() in ["clang", "llvm-gcc"]: + if self.getCompiler() in ["clang"] self.expect( "frame variable", patterns=[ diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py b/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py index aac18e13bf54f2..2c0a89f9839941 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py @@ -157,27 +157,6 @@ def cleanup(): ], ) - # Bad debugging info on SnowLeopard gcc (Apple Inc. build 5666). - # Skip the following tests if the condition is met. - if self.getCompiler().endswith("gcc") and not self.getCompiler().endswith( - "llvm-gcc" - ): - import re - - gcc_version_output = system([[lldbutil.which(self.getCompiler()), "-v"]]) - self.trace("my output:", gcc_version_output) - for line in gcc_version_output.split(os.linesep): - m = re.search("\(Apple Inc\. build ([0-9]+)\)", line) - self.trace("line:", line) - if m: - gcc_build = int(m.group(1)) - self.trace("gcc build:", gcc_build) - if gcc_build >= 5666: - # rdar://problem/9804600" - self.skipTest( - "rdar://problem/9804600 wrong namespace for std::string in debug info" - ) - # Expand same expression, skipping 3 layers of summaries self.expect( "frame variable data1.m_child1->m_child2 --show-types --no-summary-depth=3", diff --git a/lldb/test/API/lang/cpp/namespace/TestNamespace.py b/lldb/test/API/lang/cpp/namespace/TestNamespace.py index 8b013d928f9ca5..40cbff9cb3c949 100644 --- a/lldb/test/API/lang/cpp/namespace/TestNamespace.py +++ b/lldb/test/API/lang/cpp/namespace/TestNamespace.py @@ -161,7 +161,7 @@ def test_with_run_command(self): # On Mac OS X, gcc 4.2 emits the wrong debug info with respect to # types. slist = ["(int) a = 12", "anon_uint", "a_uint", "b_uint", "y_uint"] - if self.platformIsDarwin() and self.getCompiler() in ["clang", "llvm-gcc"]: + if self.platformIsDarwin() and self.getCompiler() in ["clang"]: slist = [ "(int) a = 12", "::my_uint_t", diff --git a/lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp b/lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp index 91354494155e6b..e847b3d39ebd66 100644 --- a/lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp +++ b/lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp @@ -122,41 +122,6 @@ TEST(DWARFUnitTest, ClangProducer) { EXPECT_EQ(unit->GetProducerVersion(), llvm::VersionTuple(1300, 0, 29, 3)); } -TEST(DWARFUnitTest, LLVMGCCProducer) { - const char *yamldata = R"( ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_EXEC - Machine: EM_386 -DWARF: - debug_str: - - 'i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)' - debug_abbrev: - - Table: - - Code: 0x00000001 - Tag: DW_TAG_compile_unit - Children: DW_CHILDREN_yes - Attributes: - - Attribute: DW_AT_producer - Form: DW_FORM_strp - debug_info: - - Version: 4 - AddrSize: 8 - Entries: - - AbbrCode: 0x1 - Values: - - Value: 0x0 - - AbbrCode: 0x0 -)"; - - YAMLModuleTester t(yamldata); - DWARFUnit *unit = t.GetDwarfUnit(); - ASSERT_TRUE((bool)unit); - EXPECT_EQ(unit->GetProducer(), eProducerLLVMGCC); -} - TEST(DWARFUnitTest, SwiftProducer) { const char *yamldata = R"( --- !ELF >From a21a76ec60ded77877af29c6e2a920dafd4da1ec Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Tue, 17 Dec 2024 13:08:16 +0000 Subject: [PATCH 2/2] fixup! add missing colon in python test --- .../data-formatter/data-formatter-cpp/TestDataFormatterCpp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py index 8d840a03d064af..644529b1c451b4 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py @@ -67,7 +67,7 @@ def cleanup(): ) # gcc4.2 on Mac OS X skips typedef chains in the DWARF output - if self.getCompiler() in ["clang"] + if self.getCompiler() in ["clang"]: self.expect( "frame variable", patterns=[ _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits