diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2025-01-22 17:47:26 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-22 17:47:26 +0000 |
commit | 511dc261ab94da7db6e67b05cdcef9dcff44798a (patch) | |
tree | 432ad4ec42f3b3da3d175c28ed922b1318e32967 /llvm/lib/CodeGen/BranchFolding.cpp | |
parent | f78359cf43cb990f66412059383cdd95ab6e6ec4 (diff) | |
download | llvm-511dc261ab94da7db6e67b05cdcef9dcff44798a.zip llvm-511dc261ab94da7db6e67b05cdcef9dcff44798a.tar.gz llvm-511dc261ab94da7db6e67b05cdcef9dcff44798a.tar.bz2 |
[lldb][DWARFASTParserClang][NFCI] Factor out CV-qualifier/is_static parsing from ParseChildParameters (#123951)
This patch continues simplifying `ParseChildParameters` by moving out
the logic that parses the first parameter of a function DIE into a
helper function. Since with GCC (and lately Clang) function declarations
have `DW_AT_object_pointer`s, we should be able to check for the
attribute's existence to determine if a function is static (and also
deduce CV-qualifiers from it). This will be useful for cases where the
object parameter is explicit (which is possible since C++23).
This should be NFC. I added a FIXME to places where we assume an
implicit object parameter (which will be addressed in a follow-up
patch).
We used to guard parsing of the CV-qualifiers of the "this" parameter
with a `encoding_mask & Type::eEncodingIsPointerUID`, which is
incorrect, because `eEncodingIsPointerUID` cannot be used as a bitmask
directly (see https://github.com/llvm/llvm-project/issues/120856). This
patch corrects this, but it should still be NFC because any parameter in
C++ called "this" *is* an implicit object parameter.
Diffstat (limited to 'llvm/lib/CodeGen/BranchFolding.cpp')
0 files changed, 0 insertions, 0 deletions