summaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorErich Keane <erich.keane@intel.com>2020-10-16 09:09:09 -0700
committerErich Keane <erich.keane@intel.com>2020-10-30 06:39:55 -0700
commitec809e4cfe0be08b1bab7ba7e6ff905b9430571a (patch)
tree01e4db437a08a6c3b542fb735a2fac7d3f4c3361 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent316593ce839f05af936e705182747743e4638f3c (diff)
PR47372: Fix Lambda invoker calling conventions
As mentioned in the defect, the lambda static invoker does not follow the calling convention of the lambda itself, which seems wrong. This patch ensures that the calling convention of operator() is passed onto the invoker and conversion-operator type. This is accomplished by extracting the calling-convention determination code out into a separate function in order to better reflect the 'thiscall' work, as well as somewhat better support the future implementation of https://devblogs.microsoft.com/oldnewthing/20150220-00/?p=44623 For any target (basically just win32) that has a different free and static function calling convention, this generates BOTH alternatives. This required some work to get the Windows mangler to work correctly for this, as well as some tie-breaking for the unary operators. Differential Revision: https://reviews.llvm.org/D89559
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions