diff options
author | Jeff Trull <edaskel@att.net> | 2020-06-25 07:29:53 -0400 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2020-06-25 07:29:53 -0400 |
commit | 95a3550dc89a0d424d90e2c0ad30d9ecfa9422cf (patch) | |
tree | 2dfaf7615dfef9efa070b96d53b6168dec89dcfa /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | c95ffadb2474a4d8c4f598d94d35a9f31d9606cb (diff) | |
download | llvm-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