From f35a82384d9ebeff3bb5ffd7a5ebe30436c1b401 Mon Sep 17 00:00:00 2001 From: Andy Yankovsky Date: Tue, 3 Nov 2020 10:32:42 -0800 Subject: Return actual type from SBType::GetArrayElementType SBType::GetArrayElementType should return the actual type, not the canonical type (e.g. int32_t, not the underlying int). Added a test case to validate the new behavior. I also ran all other tests on Linux (ninja check-lldb), they all pass. Differential revision: https://reviews.llvm.org/D90318 --- lldb/test/API/python_api/type/TestTypeList.py | 13 +++++++++++++ lldb/test/API/python_api/type/main.cpp | 3 +++ 2 files changed, 16 insertions(+) (limited to 'lldb/test/API/python_api') diff --git a/lldb/test/API/python_api/type/TestTypeList.py b/lldb/test/API/python_api/type/TestTypeList.py index 75a793a..901ddc6 100644 --- a/lldb/test/API/python_api/type/TestTypeList.py +++ b/lldb/test/API/python_api/type/TestTypeList.py @@ -131,3 +131,16 @@ class TypeAndTypeListTestCase(TestBase): # (lldb-enumerations.h). int_type = id_type.GetBasicType(lldb.eBasicTypeInt) self.assertTrue(id_type == int_type) + + # Find 'myint_arr' and check the array element type. + myint_arr = frame0.FindVariable('myint_arr') + self.assertTrue(myint_arr, VALID_VARIABLE) + self.DebugSBValue(myint_arr) + myint_arr_type = myint_arr.GetType() + self.DebugSBType(myint_arr_type) + self.assertTrue(myint_arr_type.IsArrayType()) + myint_arr_element_type = myint_arr_type.GetArrayElementType() + self.DebugSBType(myint_arr_element_type) + myint_type = target.FindFirstType('myint') + self.DebugSBType(myint_type) + self.assertTrue(myint_arr_element_type == myint_type) diff --git a/lldb/test/API/python_api/type/main.cpp b/lldb/test/API/python_api/type/main.cpp index 40799ab..13e6bbc 100644 --- a/lldb/test/API/python_api/type/main.cpp +++ b/lldb/test/API/python_api/type/main.cpp @@ -56,5 +56,8 @@ int main (int argc, char const *argv[]) // This corresponds to an empty task list. Task *empty_task_head = new Task(-1, NULL); + typedef int myint; + myint myint_arr[] = {1, 2, 3}; + return 0; // Break at this line } -- cgit v1.1