From 26a15efa772b8d448f54027aaf3046f9a6aeda6f Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Thu, 17 Jul 2014 22:51:31 +0000 Subject: [PATCH] Fixed the objective C symbol parsing in ObjectFileMachO. This fixes all of the hidden ivar test cases and any case where we try to find the full definition of an objective C class. This also means hidden ivars show up again. llvm.org/pr20270 llvm.org/pr20269 llvm.org/pr20272 llvm-svn: 213328 --- lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp | 6 ------ lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py | 2 -- lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py | 2 -- lldb/test/lang/objc/real-definition/TestRealDefinition.py | 4 ---- 4 files changed, 14 deletions(-) diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index 4b3e2c0..50c663c 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -1669,10 +1669,6 @@ ObjectFileMachO::CreateSections (SectionList &unified_section_list) offset = load_cmd_offset + load_cmd.cmdsize; } - -// StreamFile s(stdout, false); // REMOVE THIS LINE -// s.Printf ("Sections for %s:\n", m_file.GetPath().c_str());// REMOVE THIS LINE -// m_sections_ap->Dump(&s, NULL, true, UINT32_MAX);// REMOVE THIS LINE } } @@ -2961,7 +2957,6 @@ ObjectFileMachO::ParseSymtab () case eSectionTypeData4: case eSectionTypeData8: case eSectionTypeData16: - case eSectionTypeDataPointers: type = eSymbolTypeData; break; default: @@ -3742,7 +3737,6 @@ ObjectFileMachO::ParseSymtab () case eSectionTypeData4: case eSectionTypeData8: case eSectionTypeData16: - case eSectionTypeDataPointers: type = eSymbolTypeData; break; default: diff --git a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py index 3939ef5..f8a768c 100644 --- a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py +++ b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py @@ -12,7 +12,6 @@ class HiddenIvarsTestCase(TestBase): @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") @dsym_test - @expectedFailureDarwin("llvm.org/20269") def test_expr_with_dsym(self): if self.getArchitecture() == 'i386': self.skipTest("requires modern objc runtime") @@ -21,7 +20,6 @@ class HiddenIvarsTestCase(TestBase): @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") @dwarf_test - @expectedFailureDarwin("llvm.org/20269") def test_expr_with_dwarf(self): if self.getArchitecture() == 'i386': self.skipTest("requires modern objc runtime") diff --git a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py index e4e13bd..335aab3 100644 --- a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py +++ b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py @@ -15,7 +15,6 @@ class ObjCDynamicSBTypeTestCase(TestBase): @dsym_test @skipIfi386 - @expectedFailureDarwin("llvm.org/pr20270") def test_nsimage_dyn_with_dsym(self): """Test that we are able to properly report a usable dynamic type.""" d = {'EXE': self.exe_name} @@ -25,7 +24,6 @@ class ObjCDynamicSBTypeTestCase(TestBase): @dwarf_test @skipIfi386 - @expectedFailureDarwin("llvm.org/pr20270") def test_nsimage_dyn_with_dwarf(self): """Test that we are able to properly report a usable dynamic type.""" d = {'EXE': self.exe_name} diff --git a/lldb/test/lang/objc/real-definition/TestRealDefinition.py b/lldb/test/lang/objc/real-definition/TestRealDefinition.py index ea666ed..dd476fc 100644 --- a/lldb/test/lang/objc/real-definition/TestRealDefinition.py +++ b/lldb/test/lang/objc/real-definition/TestRealDefinition.py @@ -12,7 +12,6 @@ class TestRealDefinition(TestBase): @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") @dsym_test - @expectedFailureDarwin("llvm.org/pr20272") def test_frame_var_after_stop_at_interface_with_dsym(self): """Test that we can find the implementation for an objective C type""" if self.getArchitecture() == 'i386': @@ -22,7 +21,6 @@ class TestRealDefinition(TestBase): @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") @dwarf_test - @expectedFailureDarwin("llvm.org/pr20272") def test_frame_var_after_stop_at_interface_with_dwarf(self): """Test that we can find the implementation for an objective C type""" if self.getArchitecture() == 'i386': @@ -32,7 +30,6 @@ class TestRealDefinition(TestBase): @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") @dsym_test - @expectedFailureDarwin("llvm.org/pr20272") def test_frame_var_after_stop_at_implementation_with_dsym(self): """Test that we can find the implementation for an objective C type""" if self.getArchitecture() == 'i386': @@ -42,7 +39,6 @@ class TestRealDefinition(TestBase): @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") @dwarf_test - @expectedFailureDarwin("llvm.org/pr20272") def test_frame_var_after_stop_at_implementation_with_dwarf(self): """Test that we can find the implementation for an objective C type""" if self.getArchitecture() == 'i386': -- 2.7.4