diff --git a/lldb/source/API/SBType.cpp b/lldb/source/API/SBType.cpp index 772ac87145bb7..0a99ac0f22923 100644 --- a/lldb/source/API/SBType.cpp +++ b/lldb/source/API/SBType.cpp @@ -213,10 +213,8 @@ SBType SBType::GetArrayElementType() { if (!IsValid()) return LLDB_RECORD_RESULT(SBType()); - CompilerType canonical_type = - m_opaque_sp->GetCompilerType(true).GetCanonicalType(); - return LLDB_RECORD_RESULT(SBType( - TypeImplSP(new TypeImpl(canonical_type.GetArrayElementType(nullptr))))); + return LLDB_RECORD_RESULT(SBType(TypeImplSP(new TypeImpl( + m_opaque_sp->GetCompilerType(true).GetArrayElementType(nullptr))))); } SBType SBType::GetArrayType(uint64_t size) { diff --git a/lldb/test/API/python_api/type/TestTypeList.py b/lldb/test/API/python_api/type/TestTypeList.py index 75a793a95b292..901ddc62f4e56 100644 --- a/lldb/test/API/python_api/type/TestTypeList.py +++ b/lldb/test/API/python_api/type/TestTypeList.py @@ -131,3 +131,16 @@ def test(self): # (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 40799abe36d32..13e6bbc127ba6 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 }