[Lldb-commits] [lldb] [lldb] Fix TestSBValueSetTypeSyntheticOverride with libstdc++ (PR #210495)
David Mentler via lldb-commits
lldb-commits at lists.llvm.org
Sat Jul 18 01:33:10 PDT 2026
https://github.com/mentlerd updated https://github.com/llvm/llvm-project/pull/210495
>From bca867faafed4d2fd1fb83b27f75133a73fbb3d2 Mon Sep 17 00:00:00 2001
From: mentlerd <mentlerd at gmail.com>
Date: Sat, 18 Jul 2026 09:16:27 +0200
Subject: [PATCH 1/2] Fix bad assumption about std::vectors SCP being
implemented in C++
This is not necessarily true across all configurations, particularly
with gnu libstdc++
---
.../TestSBValueSetTypeSyntheticOverride.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py b/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
index e5e8f29ba0e75..907d1af956219 100644
--- a/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
+++ b/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
@@ -18,8 +18,11 @@ def test(self):
# CXX runtime synthetic can be overridden
vec = frame.FindVariable("vec")
- self.assertTrue(vec.IsSynthetic())
- self.checkOverride(vec, before=None)
+
+ # GNU libstdc++'s std::vector doesn't have a CXXSyntheticChildren implementation
+ # Use the fact that GetTypeSynthetic() only returns scripted SCPs to filter
+ if vec.IsSynthetic() and vec.GetTypeSynthetic() is None:
+ self.checkOverride(vec, before=None)
# Python synthetic can be overridden
foo = frame.FindVariable("foo")
>From 137af5dd7caca7885a0a1fe9040bfdf7d0c29310 Mon Sep 17 00:00:00 2001
From: mentlerd <mentlerd at gmail.com>
Date: Sat, 18 Jul 2026 10:32:03 +0200
Subject: [PATCH 2/2] Do the even simpler thing and omit testing against CXX
synths
This part of the test has a non-trivial expectation against the LLDB which it
tests: it wants std::vector to have a non-scripted synthetic child provider
implementation.
---
.../TestSBValueSetTypeSyntheticOverride.py | 8 --------
1 file changed, 8 deletions(-)
diff --git a/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py b/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
index 907d1af956219..8f8d3374218b3 100644
--- a/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
+++ b/lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
@@ -16,14 +16,6 @@ def test(self):
frame = thread.GetFrameAtIndex(0)
- # CXX runtime synthetic can be overridden
- vec = frame.FindVariable("vec")
-
- # GNU libstdc++'s std::vector doesn't have a CXXSyntheticChildren implementation
- # Use the fact that GetTypeSynthetic() only returns scripted SCPs to filter
- if vec.IsSynthetic() and vec.GetTypeSynthetic() is None:
- self.checkOverride(vec, before=None)
-
# Python synthetic can be overridden
foo = frame.FindVariable("foo")
self.assertTrue(foo.IsSynthetic())
More information about the lldb-commits
mailing list