This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGf35a82384d9e: Return actual type from 
SBType::GetArrayElementType (authored by werat, committed by JDevlieghere).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90318/new/

https://reviews.llvm.org/D90318

Files:
  lldb/source/API/SBType.cpp
  lldb/test/API/python_api/type/TestTypeList.py
  lldb/test/API/python_api/type/main.cpp


Index: lldb/test/API/python_api/type/main.cpp
===================================================================
--- lldb/test/API/python_api/type/main.cpp
+++ lldb/test/API/python_api/type/main.cpp
@@ -56,5 +56,8 @@
     // 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
 }
Index: lldb/test/API/python_api/type/TestTypeList.py
===================================================================
--- lldb/test/API/python_api/type/TestTypeList.py
+++ lldb/test/API/python_api/type/TestTypeList.py
@@ -131,3 +131,16 @@
         # (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)
Index: lldb/source/API/SBType.cpp
===================================================================
--- lldb/source/API/SBType.cpp
+++ lldb/source/API/SBType.cpp
@@ -213,10 +213,8 @@
 
   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) {


Index: lldb/test/API/python_api/type/main.cpp
===================================================================
--- lldb/test/API/python_api/type/main.cpp
+++ lldb/test/API/python_api/type/main.cpp
@@ -56,5 +56,8 @@
     // 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
 }
Index: lldb/test/API/python_api/type/TestTypeList.py
===================================================================
--- lldb/test/API/python_api/type/TestTypeList.py
+++ lldb/test/API/python_api/type/TestTypeList.py
@@ -131,3 +131,16 @@
         # (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)
Index: lldb/source/API/SBType.cpp
===================================================================
--- lldb/source/API/SBType.cpp
+++ lldb/source/API/SBType.cpp
@@ -213,10 +213,8 @@
 
   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) {
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to