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")