-
Notifications
You must be signed in to change notification settings - Fork 14.6k
[PATCH 7/7] [clang] improve NestedNameSpecifier: LLDB changes #149949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: users/mizvekov/name-qualification-refactor-6
Are you sure you want to change the base?
[PATCH 7/7] [clang] improve NestedNameSpecifier: LLDB changes #149949
Conversation
@llvm/pr-subscribers-clang @llvm/pr-subscribers-lldb Author: Matheus Izvekov (mizvekov) ChangesTest run of the LLDB CI, just checking if anything needs to be updated there. Full diff: https://github.com/llvm/llvm-project/pull/149949.diff 1 Files Affected:
diff --git a/lldb/DELETE.ME b/lldb/DELETE.ME
new file mode 100644
index 0000000000000..e69de29bb2d1d
|
3c8cbad
to
7c873c4
Compare
7c873c4
to
2c01149
Compare
lldb/test/Shell/SymbolFile/DWARF/x86/typedef-in-incomplete-type.cpp
Outdated
Show resolved
Hide resolved
998f226
to
47b79ce
Compare
285569d
to
968ecb4
Compare
✅ With the latest revision this PR passed the Python code formatter. |
b8c6168
to
ea97cf5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmmm yea I don't think we want to be losing the scope qualifiers for the typenames. What does LLDB have to do to retain those?
The answer to that depends on what LLDB wants and can do here. The status quo is, the types produced in the places changed here are not valid as-written types, as they lacked an ElaboratedType. Clang will currently print types lacking an ElaboratedType as if they were fully qualified, with a synthesized name qualifier. This is used to distinguish canonical from non-canonical types, and the motivation is that we find it more appropriate to print canonical types as fully qualified when they appear in diagnostics and such. Now with this patch series, we retain the ability to distinguish canonical RecordTypes and EnumTypes, and still print those as fully qualified. But a mis-feature of the status quo is removed: the same would work for TypedefTypes, if they lacked an ElaboratedType on top, then we would fully qualify them when printing. But this was not an intentional feature, and it lacks motivation, as TypedefTypes never appear in canonical types. Now, does LLDB want to keep fully qualified names here, or does it want these to be printed as-written? Changing this back to the status quo is more straight-forward, we just need to synthesize fully qualified types. This is taking me a while because it's currently very difficulty for me to get a functional LLDB workflow on MacOS, so To change this to as-written, we would need to figure out if we have a source for this information first, if we store and can retrieve those from all of the Debug info formats we support. |
ea97cf5
to
ba9b546
Compare
✅ With the latest revision this PR passed the C/C++ code formatter. |
1ee6918
to
ff7f559
Compare
Patch series starting at #147835
ff7f559
to
75be9ef
Compare
Patch series starting at #147835