aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJeff Trull <edaskel@att.net>2020-06-25 07:29:53 -0400
committerAaron Ballman <aaron@aaronballman.com>2020-06-25 07:29:53 -0400
commit95a3550dc89a0d424d90e2c0ad30d9ecfa9422cf (patch)
tree2dfaf7615dfef9efa070b96d53b6168dec89dcfa /clang/lib/Frontend/CompilerInvocation.cpp
parentc95ffadb2474a4d8c4f598d94d35a9f31d9606cb (diff)
downloadllvm-95a3550dc89a0d424d90e2c0ad30d9ecfa9422cf.zip
llvm-95a3550dc89a0d424d90e2c0ad30d9ecfa9422cf.tar.gz
llvm-95a3550dc89a0d424d90e2c0ad30d9ecfa9422cf.tar.bz2
Repair various issues with modernize-avoid-bind
In the process of running this check on a large codebase I found a number of limitations, and thought I would pass on my fixes for possible integration upstream: * Templated function call operators are not supported * Function object constructors are always used directly in the lambda body, even if their arguments are not captured * Placeholders with namespace qualifiers (std::placeholders::_1) are not detected * Lambda arguments should be forwarded to the stored function * Data members from other classes still get captured with this * Expressions (as opposed to variables) inside std::ref are not captured properly * Function object templates sometimes have their template arguments replaced with concrete types This patch resolves all those issues and adds suitable unit tests.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions