diff options
author | Pavel Labath <labath@google.com> | 2016-12-15 09:40:27 +0000 |
---|---|---|
committer | Pavel Labath <labath@google.com> | 2016-12-15 09:40:27 +0000 |
commit | 08c2e86802e5d17def4e7a3ca06104f3402706cb (patch) | |
tree | 6b30fda92f41c6cb446c1510f9e1f21875ff00c0 /llvm/lib/CodeGen/MachineScheduler.cpp | |
parent | 96e10b5a9e89e1575630212908259b177af8d748 (diff) | |
download | llvm-08c2e86802e5d17def4e7a3ca06104f3402706cb.zip llvm-08c2e86802e5d17def4e7a3ca06104f3402706cb.tar.gz llvm-08c2e86802e5d17def4e7a3ca06104f3402706cb.tar.bz2 |
Simplify format member detection in FormatVariadic
Summary:
This replaces the format member search, which was quite complicated, with a more
direct approach to detecting whether a class should be formatted using the
format-member method. Instead we use a special type llvm::format_adapter, which
every adapter must inherit from. Then the search can be simply implemented with
the is_base_of type trait.
Aside from the simplification, I like this way more because it makes it more
explicit that you are supposed to use this type only for adapter-like
formattings, and the other approach (format_provider overloads) should be used
as a default (a mistake I made when first trying to use this library).
The only slight change in behaviour here is that now choose the format-adapter
branch even if the format member invocation will fail to compile (e.g. because it is a
non-const member function and we are passing a const adapter), whereas
previously we would have gone on to search for format_providers for the type.
However, I think that is actually a good thing, as it probably means the
programmer did something wrong.
Reviewers: zturner, inglorion
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D27679
llvm-svn: 289795
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
0 files changed, 0 insertions, 0 deletions