[Lldb-commits] [PATCH] D96807: Modify TypePrinter to differentiate between anonymous struct and unnamed struct
Shafik Yaghmour via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Feb 16 11:50:00 PST 2021
shafik created this revision.
shafik added reviewers: aaron.ballman, rsmith, teemperor.
Herald added a subscriber: arphaman.
shafik requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added a subscriber: sstefan1.
Currently `TypePrinter` lumps anonymous classes and unnamed classes in one group `"anonymous"` this is not correct and can be confusing in some contexts. e.g.
LLDB SBType <https://lldb.llvm.org/python_reference/lldb.SBType-class.html> provides an `IsAnonymousType()` function but when displaying the type we see conflicting information, given:
struct A {
struct { int x; }; // A
struct { int y; } B;
};
int main() {
A a1;
//...
}
we get the following in LLDB:
(lldb) script var = lldb.frame.FindVariable("a1")
(lldb) script print(var.GetChildAtIndex(0).GetType().IsAnonymousType())
True
(lldb) script print(var.GetChildAtIndex(1).GetType().IsAnonymousType())
False
(lldb) script print(var.GetChildAtIndex(0).GetType().GetName())
A::(anonymous struct)
(lldb) script print(var.GetChildAtIndex(1).GetType().GetName())
A::(anonymous struct)
https://reviews.llvm.org/D96807
Files:
clang/lib/AST/TypePrinter.cpp
clang/test/AST/ast-dump-decl-json.c
clang/test/AST/ast-dump-openmp-cancel.c
clang/test/AST/ast-dump-openmp-cancellation-point.c
clang/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c
clang/test/AST/ast-dump-openmp-distribute-parallel-for.c
clang/test/AST/ast-dump-openmp-distribute-simd.c
clang/test/AST/ast-dump-openmp-distribute.c
clang/test/AST/ast-dump-openmp-for-simd.c
clang/test/AST/ast-dump-openmp-for.c
clang/test/AST/ast-dump-openmp-ordered.c
clang/test/AST/ast-dump-openmp-parallel-for-simd.c
clang/test/AST/ast-dump-openmp-parallel-for.c
clang/test/AST/ast-dump-openmp-parallel-sections.c
clang/test/AST/ast-dump-openmp-parallel.c
clang/test/AST/ast-dump-openmp-section.c
clang/test/AST/ast-dump-openmp-sections.c
clang/test/AST/ast-dump-openmp-simd.c
clang/test/AST/ast-dump-openmp-single.c
clang/test/AST/ast-dump-openmp-target-data.c
clang/test/AST/ast-dump-openmp-target-enter-data.c
clang/test/AST/ast-dump-openmp-target-exit-data.c
clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c
clang/test/AST/ast-dump-openmp-target-parallel-for.c
clang/test/AST/ast-dump-openmp-target-parallel.c
clang/test/AST/ast-dump-openmp-target-simd.c
clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c
clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c
clang/test/AST/ast-dump-openmp-target-teams-distribute.c
clang/test/AST/ast-dump-openmp-target-teams.c
clang/test/AST/ast-dump-openmp-target-update.c
clang/test/AST/ast-dump-openmp-target.c
clang/test/AST/ast-dump-openmp-task.c
clang/test/AST/ast-dump-openmp-taskgroup.c
clang/test/AST/ast-dump-openmp-taskloop-simd.c
clang/test/AST/ast-dump-openmp-taskloop.c
clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
clang/test/AST/ast-dump-openmp-teams-distribute-simd.c
clang/test/AST/ast-dump-openmp-teams-distribute.c
clang/test/AST/ast-dump-openmp-teams.c
clang/test/AST/ast-dump-records-json.cpp
clang/test/AST/ast-dump-records.c
clang/test/AST/ast-dump-records.cpp
clang/test/AST/ast-dump-stmt-json.m
clang/test/ASTMerge/struct/test.c
clang/test/Analysis/cfg.cpp
clang/test/Analysis/padding_c.c
clang/test/Index/print-type.c
clang/test/Layout/ms-x86-alias-avoidance-padding.cpp
clang/test/PCH/stmt-openmp_structured_block-bit.cpp
clang/test/Sema/assign.c
clang/test/SemaCXX/condition.cpp
lldb/test/Shell/SymbolFile/DWARF/clang-ast-from-dwarf-unamed-and-anon-structs.cpp
lldb/test/Shell/SymbolFile/DWARF/debug-types-missing-signature.test
More information about the lldb-commits
mailing list