| import lldbsuite.test.lldbutil as lldbutil | |
| from lldbsuite.test.lldbtest import * | |
| class TestCase(TestBase): | |
| def test_functions_having_dlang_mangling_prefix(self): | |
| """ | |
| Ensure C functions with a '_D' prefix alone are not mistakenly treated | |
| as a Dlang mangled name. A proper Dlang mangling will have digits | |
| immediately following the '_D' prefix. | |
| """ | |
| self.build() | |
| _, _, thread, _ = lldbutil.run_to_name_breakpoint(self, "_Dfunction") | |
| frame = thread.frame[0] | |
| symbol = frame.symbol | |
| # On Windows the function does not have an associated symbol. | |
| if symbol.IsValid(): | |
| self.assertFalse(symbol.mangled) | |
| self.assertEqual(symbol.GetDisplayName(), "_Dfunction") | |
| function = frame.function | |
| self.assertFalse(function.mangled) | |
| self.assertEqual(function.GetDisplayName(), "_Dfunction") |