llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: David Spickett (DavidSpickett)

<details>
<summary>Changes</summary>

On Windows the function does not have a symbol associated with it:
       Function: id = {0x000001c9}, name = "_Dfunction", range = 
[0x0000000140001000-0x0000000140001004)
      LineEntry: &lt;...&gt;

Whereas it does on Linux:
       Function: id = {0x00000023}, name = "_Dfunction", range = 
[0x0000000000000734-0x0000000000000738)
      LineEntry: &lt;...&gt;
         Symbol: id = {0x00000058}, range = 
[0x0000000000000734-0x0000000000000738), name="_Dfunction"

This means that frame.symbol is not valid on Windows.

However, frame.function is valid and it also has a "mangled" attribute.

So I've updated the test to check the symbol if we've got it, and the function 
always.

In both cases we check that mangled is empty (meaning it has not been treated 
as mangled) and that the display name matches the original symbol name.

---
Full diff: https://github.com/llvm/llvm-project/pull/94196.diff


1 Files Affected:

- (modified) lldb/test/API/lang/c/non-mangled/TestCNonMangled.py (+11-2) 


``````````diff
diff --git a/lldb/test/API/lang/c/non-mangled/TestCNonMangled.py 
b/lldb/test/API/lang/c/non-mangled/TestCNonMangled.py
index c35d8a9bb9163..c16a1185acb97 100644
--- a/lldb/test/API/lang/c/non-mangled/TestCNonMangled.py
+++ b/lldb/test/API/lang/c/non-mangled/TestCNonMangled.py
@@ -12,5 +12,14 @@ def test_functions_having_dlang_mangling_prefix(self):
         """
         self.build()
         _, _, thread, _ = lldbutil.run_to_name_breakpoint(self, "_Dfunction")
-        symbol = thread.frame[0].symbol
-        self.assertEqual(symbol.GetDisplayName(), "_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")

``````````

</details>


https://github.com/llvm/llvm-project/pull/94196
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to