diff options
author | Brad King <brad.king@kitware.com> | 2017-11-21 19:20:37 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-11-21 19:22:40 (GMT) |
commit | e5fdbcc9da3855f5301f62d2d7ba39ad039ce7d4 (patch) | |
tree | 2e3a358c72a8ef2a55bebe371d0a1593895abcc8 /Utilities | |
parent | baa19f658f947047dddac0228bcd52591829983d (diff) | |
download | CMake-e5fdbcc9da3855f5301f62d2d7ba39ad039ce7d4.zip CMake-e5fdbcc9da3855f5301f62d2d7ba39ad039ce7d4.tar.gz CMake-e5fdbcc9da3855f5301f62d2d7ba39ad039ce7d4.tar.bz2 |
IWYU: Add more mappings for std::__decay_and_strip
IWYU incorrectly classifies this internal STL type as not internal, and
suggests including `<type_traits>` for it. Work around the problem by
mapping the offending names to a file that we always include.
See include-what-you-use issue 434.
Diffstat (limited to 'Utilities')
-rw-r--r-- | Utilities/IWYU/mapping.imp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/Utilities/IWYU/mapping.imp b/Utilities/IWYU/mapping.imp index 3240edf..6477d59 100644 --- a/Utilities/IWYU/mapping.imp +++ b/Utilities/IWYU/mapping.imp @@ -52,11 +52,13 @@ # __decay_and_strip is used internally in the C++11 standard library. # IWYU does not classify it as internal and suggests to add <type_traits>. # To ignore it, we simply map it to a file that is included anyway. + # Use '-Xiwyu -v7' to see the fully qualified names that need this. # TODO: Can this be simplified with an @-expression? #{ symbol: [ "@std::__decay_and_strip<.*>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<cmCommand *&>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<cmGeneratorTarget *&>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<cmFindCommon::PathLabel &>::__type", private, "\"cmConfigure.h\"", public ] }, + { symbol: [ "std::__decay_and_strip<cmSearchPath>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<std::basic_string<char> &>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<const std::basic_string<char> &>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<cmFindPackageCommand::PathLabel &>::__type", private, "\"cmConfigure.h\"", public ] }, |