aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/BranchFolding.cpp
diff options
context:
space:
mode:
authorMichael Buch <michaelbuch12@gmail.com>2025-01-22 17:47:26 +0000
committerGitHub <noreply@github.com>2025-01-22 17:47:26 +0000
commit511dc261ab94da7db6e67b05cdcef9dcff44798a (patch)
tree432ad4ec42f3b3da3d175c28ed922b1318e32967 /llvm/lib/CodeGen/BranchFolding.cpp
parentf78359cf43cb990f66412059383cdd95ab6e6ec4 (diff)
downloadllvm-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