[llvm] bb90a5c - [llvm][utils] Fix SmallVector formatter when type is a pointer
Michael Buch via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 15 15:10:15 PDT 2023
Author: Michael Buch
Date: 2023-08-15T23:09:59+01:00
New Revision: bb90a5cf204119c87452f1d98338b3768fedb184
URL: https://github.com/llvm/llvm-project/commit/bb90a5cf204119c87452f1d98338b3768fedb184
DIFF: https://github.com/llvm/llvm-project/commit/bb90a5cf204119c87452f1d98338b3768fedb184.diff
LOG: [llvm][utils] Fix SmallVector formatter when type is a pointer
Previously types such as `SmallVector<clang::Attr, 4> *` would
trigger the assertion inside the `SmallVector` formatter:
```
assert self.type_size != 0
```
This happens because `the_type.GetTemplateArgumentType(0)` returns
`None` (since `the_type` is a pointer to the `SmallVector`).
This patch dereferences `the_type` if it's a pointer type. We do this
for references already.
Differential Revision: https://reviews.llvm.org/D157961
Added:
Modified:
llvm/utils/lldbDataFormatters.py
Removed:
################################################################################
diff --git a/llvm/utils/lldbDataFormatters.py b/llvm/utils/lldbDataFormatters.py
index fec1153d3ef8df..8e0e7e1c0c5121 100644
--- a/llvm/utils/lldbDataFormatters.py
+++ b/llvm/utils/lldbDataFormatters.py
@@ -129,6 +129,9 @@ def update(self):
if the_type.IsReferenceType():
the_type = the_type.GetDereferencedType()
+ if the_type.IsPointerType():
+ the_type = the_type.GetPointeeType()
+
self.data_type = the_type.GetTemplateArgumentType(0)
self.type_size = self.data_type.GetByteSize()
assert self.type_size != 0
More information about the llvm-commits
mailing list