Ver código fonte

IWYU: Fix handling of <memory> standard header

An old workaround for `std::allocator_traits<>::value_type` lints from
IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`.
Convert the workaround to use the same approach we already use for a
workaround of `std::__decay_and_strip<>::::__type` lints.  Then update
the `<memory>` inclusions to follow the now-correct IWYU lints.
Brad King 6 anos atrás
pai
commit
71fbebd1dc
88 arquivos alterados com 104 adições e 69 exclusões
  1. 1 1
      Source/CPack/cmCPackGenerator.cxx
  2. 0 1
      Source/CPack/cpack.cxx
  3. 0 1
      Source/CTest/cmCTestLaunch.cxx
  4. 2 0
      Source/CTest/cmCTestMultiProcessHandler.cxx
  5. 2 1
      Source/CTest/cmCTestRunTest.h
  6. 1 1
      Source/CTest/cmCTestTestHandler.cxx
  7. 1 1
      Source/CTest/cmCTestUpdateHandler.cxx
  8. 1 1
      Source/cmBinUtilsLinuxELFLinker.h
  9. 1 1
      Source/cmBinUtilsMacOSMachOLinker.h
  10. 1 1
      Source/cmBinUtilsWindowsPELinker.h
  11. 1 1
      Source/cmCTest.cxx
  12. 1 1
      Source/cmCTest.h
  13. 1 0
      Source/cmComputeLinkDepends.h
  14. 1 1
      Source/cmCryptoHash.cxx
  15. 1 1
      Source/cmCryptoHash.h
  16. 1 1
      Source/cmCustomCommandGenerator.cxx
  17. 1 1
      Source/cmELF.cxx
  18. 3 0
      Source/cmExecuteProcessCommand.cxx
  19. 0 1
      Source/cmExportBuildAndroidMKGenerator.cxx
  20. 1 1
      Source/cmExportFileGenerator.cxx
  21. 1 1
      Source/cmExportLibraryDependenciesCommand.cxx
  22. 1 1
      Source/cmExportTryCompileFileGenerator.cxx
  23. 1 1
      Source/cmFileAPI.h
  24. 1 0
      Source/cmFileAPICodemodel.cxx
  25. 1 1
      Source/cmFileCommand.cxx
  26. 1 1
      Source/cmFileTimes.h
  27. 1 1
      Source/cmFindPackageCommand.cxx
  28. 1 1
      Source/cmForEachCommand.cxx
  29. 1 1
      Source/cmGeneratorExpression.cxx
  30. 1 1
      Source/cmGeneratorExpression.h
  31. 1 1
      Source/cmGeneratorExpressionEvaluationFile.cxx
  32. 1 1
      Source/cmGeneratorExpressionEvaluationFile.h
  33. 1 1
      Source/cmGeneratorExpressionNode.cxx
  34. 1 1
      Source/cmGeneratorTarget.cxx
  35. 2 0
      Source/cmGhsMultiTargetGenerator.cxx
  36. 1 0
      Source/cmGlobalGenerator.h
  37. 1 1
      Source/cmGlobalNinjaGenerator.cxx
  38. 1 1
      Source/cmGlobalNinjaGenerator.h
  39. 1 0
      Source/cmGlobalUnixMakefileGenerator3.cxx
  40. 1 1
      Source/cmGlobalXCodeGenerator.cxx
  41. 1 1
      Source/cmGraphVizWriter.cxx
  42. 1 1
      Source/cmIfCommand.cxx
  43. 1 1
      Source/cmInstallDirectoryGenerator.cxx
  44. 1 1
      Source/cmInstallFilesGenerator.cxx
  45. 1 0
      Source/cmInstallScriptGenerator.cxx
  46. 1 0
      Source/cmInstallTargetGenerator.cxx
  47. 1 1
      Source/cmInstalledFile.h
  48. 1 0
      Source/cmJsonObjects.cxx
  49. 2 0
      Source/cmListCommand.cxx
  50. 1 1
      Source/cmListFileCache.h
  51. 3 1
      Source/cmLocalGenerator.cxx
  52. 1 1
      Source/cmLocalNinjaGenerator.cxx
  53. 1 1
      Source/cmLocalUnixMakefileGenerator3.cxx
  54. 1 1
      Source/cmLocalVisualStudioGenerator.h
  55. 1 1
      Source/cmMakefile.cxx
  56. 1 1
      Source/cmMakefile.h
  57. 1 1
      Source/cmMakefileExecutableTargetGenerator.cxx
  58. 1 1
      Source/cmMakefileLibraryTargetGenerator.cxx
  59. 1 1
      Source/cmMakefileTargetGenerator.cxx
  60. 1 0
      Source/cmMakefileTargetGenerator.h
  61. 1 0
      Source/cmMakefileUtilityTargetGenerator.cxx
  62. 1 1
      Source/cmNinjaNormalTargetGenerator.cxx
  63. 1 1
      Source/cmNinjaTargetGenerator.cxx
  64. 1 1
      Source/cmNinjaTargetGenerator.h
  65. 1 0
      Source/cmOrderDirectories.cxx
  66. 1 1
      Source/cmQtAutoGen.h
  67. 1 1
      Source/cmQtAutoGenGlobalInitializer.h
  68. 1 1
      Source/cmQtAutoGenInitializer.h
  69. 2 0
      Source/cmQtAutoGenerator.cxx
  70. 1 1
      Source/cmQtAutoMocUic.h
  71. 1 1
      Source/cmRuntimeDependencyArchive.h
  72. 1 1
      Source/cmServer.h
  73. 1 0
      Source/cmState.h
  74. 1 0
      Source/cmStateDirectory.cxx
  75. 1 1
      Source/cmStringCommand.cxx
  76. 1 1
      Source/cmTarget.h
  77. 2 0
      Source/cmTestGenerator.cxx
  78. 1 1
      Source/cmUVProcessChain.h
  79. 1 1
      Source/cmVariableWatch.h
  80. 1 1
      Source/cmVisualStudio10TargetGenerator.cxx
  81. 1 1
      Source/cmWhileCommand.cxx
  82. 1 1
      Source/cmWorkerPool.h
  83. 1 1
      Source/cmake.cxx
  84. 1 1
      Source/cmake.h
  85. 1 1
      Source/cmcmd.cxx
  86. 1 0
      Tests/CMakeLib/testUVProcessChain.cxx
  87. 2 0
      Tests/CMakeServerLib/testServerBuffering.cpp
  88. 9 2
      Utilities/IWYU/mapping.imp

+ 1 - 1
Source/CPack/cmCPackGenerator.cxx

@@ -7,7 +7,7 @@
 #include "cmsys/RegularExpression.hxx"
 #include <algorithm>
 #include <cstring>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <utility>
 
 #include "cmCPackComponentGroup.h"

+ 0 - 1
Source/CPack/cpack.cxx

@@ -5,7 +5,6 @@
 #include "cmsys/Encoding.hxx"
 #include <iostream>
 #include <map>
-#include <memory> // IWYU pragma: keep
 #include <sstream>
 #include <stddef.h>
 #include <string>

+ 0 - 1
Source/CTest/cmCTestLaunch.cxx

@@ -6,7 +6,6 @@
 #include "cmsys/Process.h"
 #include "cmsys/RegularExpression.hxx"
 #include <iostream>
-#include <memory> // IWYU pragma: keep
 #include <stdlib.h>
 #include <string.h>
 

+ 2 - 0
Source/CTest/cmCTestMultiProcessHandler.cxx

@@ -29,11 +29,13 @@
 #include <iostream>
 #include <list>
 #include <math.h>
+#include <memory>
 #include <sstream>
 #include <stack>
 #include <stdlib.h>
 #include <unordered_map>
 #include <utility>
+#include <vector>
 
 namespace cmsys {
 class RegularExpression;

+ 2 - 1
Source/CTest/cmCTestRunTest.h

@@ -5,6 +5,7 @@
 
 #include "cmConfigure.h" // IWYU pragma: keep
 
+#include <memory>
 #include <set>
 #include <stddef.h>
 #include <string>
@@ -12,7 +13,7 @@
 
 #include "cmCTestTestHandler.h"
 #include "cmDuration.h"
-#include "cmProcess.h" // IWYU pragma: keep (for unique_ptr)
+#include "cmProcess.h"
 
 class cmCTest;
 class cmCTestMultiProcessHandler;

+ 1 - 1
Source/CTest/cmCTestTestHandler.cxx

@@ -11,7 +11,7 @@
 #include <functional>
 #include <iomanip>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <sstream>
 #include <stdio.h>

+ 1 - 1
Source/CTest/cmCTestUpdateHandler.cxx

@@ -18,7 +18,7 @@
 #include "cmXMLWriter.h"
 
 #include <chrono>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 
 static const char* cmCTestUpdateHandlerUpdateStrings[] = {

+ 1 - 1
Source/cmBinUtilsLinuxELFLinker.h

@@ -9,7 +9,7 @@
 #include "cmLDConfigTool.h"
 #include "cmStateTypes.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 1
Source/cmBinUtilsMacOSMachOLinker.h

@@ -8,7 +8,7 @@
 #include "cmBinUtilsMacOSMachOGetRuntimeDependenciesTool.h"
 #include "cmStateTypes.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 1
Source/cmBinUtilsWindowsPELinker.h

@@ -8,7 +8,7 @@
 #include "cmBinUtilsWindowsPEGetRuntimeDependenciesTool.h"
 #include "cmStateTypes.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 
 class cmRuntimeDependencyArchive;

+ 1 - 1
Source/cmCTest.cxx

@@ -15,7 +15,7 @@
 #include <ctype.h>
 #include <iostream>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>

+ 1 - 1
Source/cmCTest.h

@@ -10,7 +10,7 @@
 
 #include <chrono>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <string>
 #include <time.h>

+ 1 - 0
Source/cmComputeLinkDepends.h

@@ -10,6 +10,7 @@
 #include "cmTargetLinkLibraryType.h"
 
 #include <map>
+#include <memory>
 #include <queue>
 #include <set>
 #include <string>

+ 1 - 1
Source/cmCryptoHash.cxx

@@ -8,7 +8,7 @@
 #include "cmsys/FStream.hxx"
 #include <string.h>
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 
 static unsigned int const cmCryptoHashAlgoToId[] = {
   /* clang-format needs this comment to break after the opening brace */

+ 1 - 1
Source/cmCryptoHash.h

@@ -5,7 +5,7 @@
 
 #include "cmConfigure.h" // IWYU pragma: keep
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <stddef.h>
 #include <string>
 #include <vector>

+ 1 - 1
Source/cmCustomCommandGenerator.cxx

@@ -12,7 +12,7 @@
 #include "cmStateTypes.h"
 #include "cmSystemTools.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <stddef.h>
 #include <utility>
 

+ 1 - 1
Source/cmELF.cxx

@@ -6,7 +6,7 @@
 #include "cm_kwiml.h"
 #include "cmsys/FStream.hxx"
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stddef.h>
 #include <utility>

+ 3 - 0
Source/cmExecuteProcessCommand.cxx

@@ -4,10 +4,13 @@
 
 #include "cm_static_string_view.hxx"
 #include "cmsys/Process.h"
+
 #include <algorithm>
 #include <ctype.h> /* isspace */
 #include <iostream>
+#include <memory>
 #include <stdio.h>
+#include <vector>
 
 #include "cmAlgorithms.h"
 #include "cmArgumentParser.h"

+ 0 - 1
Source/cmExportBuildAndroidMKGenerator.cxx

@@ -3,7 +3,6 @@
 #include "cmExportBuildAndroidMKGenerator.h"
 
 #include <algorithm>
-#include <memory> // IWYU pragma: keep
 #include <sstream>
 #include <utility>
 

+ 1 - 1
Source/cmExportFileGenerator.cxx

@@ -20,7 +20,7 @@
 
 #include "cmsys/FStream.hxx"
 #include <assert.h>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <string.h>
 #include <utility>

+ 1 - 1
Source/cmExportLibraryDependenciesCommand.cxx

@@ -4,7 +4,7 @@
 
 #include "cmsys/FStream.hxx"
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <utility>
 
 #include "cmAlgorithms.h"

+ 1 - 1
Source/cmExportTryCompileFileGenerator.cxx

@@ -13,7 +13,7 @@
 #include "cmTarget.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <utility>
 
 cmExportTryCompileFileGenerator::cmExportTryCompileFileGenerator(

+ 1 - 1
Source/cmFileAPI.h

@@ -10,7 +10,7 @@
 #include "cm_jsoncpp_writer.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <unordered_set>
 #include <vector>

+ 1 - 0
Source/cmFileAPICodemodel.cxx

@@ -31,6 +31,7 @@
 #include <algorithm>
 #include <cassert>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_map>

+ 1 - 1
Source/cmFileCommand.cxx

@@ -13,7 +13,7 @@
 #include <cmath>
 #include <ctype.h>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <sstream>
 #include <stdio.h>

+ 1 - 1
Source/cmFileTimes.h

@@ -5,7 +5,7 @@
 
 #include "cmConfigure.h" // IWYU pragma: keep
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 
 /** \class cmFileTimes

+ 1 - 1
Source/cmFindPackageCommand.cxx

@@ -13,7 +13,7 @@
 #include <deque>
 #include <functional>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <string.h>

+ 1 - 1
Source/cmForEachCommand.cxx

@@ -2,7 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmForEachCommand.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>

+ 1 - 1
Source/cmGeneratorExpression.cxx

@@ -3,7 +3,7 @@
 #include "cmGeneratorExpression.h"
 
 #include "cmsys/RegularExpression.hxx"
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <utility>
 
 #include "assert.h"

+ 1 - 1
Source/cmGeneratorExpression.h

@@ -8,7 +8,7 @@
 #include "cmListFileCache.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <utility>

+ 1 - 1
Source/cmGeneratorExpressionEvaluationFile.cxx

@@ -3,7 +3,7 @@
 #include "cmGeneratorExpressionEvaluationFile.h"
 
 #include "cmsys/FStream.hxx"
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <utility>
 

+ 1 - 1
Source/cmGeneratorExpressionEvaluationFile.h

@@ -6,7 +6,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 1
Source/cmGeneratorExpressionNode.cxx

@@ -33,7 +33,7 @@
 #include <errno.h>
 #include <iterator>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <sstream>
 #include <stdlib.h>

+ 1 - 1
Source/cmGeneratorTarget.cxx

@@ -7,7 +7,7 @@
 #include <assert.h>
 #include <errno.h>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <queue>
 #include <sstream>
 #include <stdio.h>

+ 2 - 0
Source/cmGhsMultiTargetGenerator.cxx

@@ -22,9 +22,11 @@
 #include "cmTarget.h"
 
 #include <algorithm>
+#include <memory>
 #include <ostream>
 #include <set>
 #include <utility>
+#include <vector>
 
 cmGhsMultiTargetGenerator::cmGhsMultiTargetGenerator(cmGeneratorTarget* target)
   : GeneratorTarget(target)

+ 1 - 0
Source/cmGlobalGenerator.h

@@ -7,6 +7,7 @@
 
 #include <iosfwd>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_map>

+ 1 - 1
Source/cmGlobalNinjaGenerator.cxx

@@ -9,7 +9,7 @@
 #include <algorithm>
 #include <ctype.h>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 

+ 1 - 1
Source/cmGlobalNinjaGenerator.h

@@ -7,7 +7,7 @@
 
 #include <iosfwd>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_map>

+ 1 - 0
Source/cmGlobalUnixMakefileGenerator3.cxx

@@ -4,6 +4,7 @@
 
 #include <algorithm>
 #include <functional>
+#include <memory>
 #include <sstream>
 #include <utility>
 

+ 1 - 1
Source/cmGlobalXCodeGenerator.cxx

@@ -5,7 +5,7 @@
 #include "cmsys/RegularExpression.hxx"
 #include <assert.h>
 #include <iomanip>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <string.h>

+ 1 - 1
Source/cmGraphVizWriter.cxx

@@ -4,7 +4,7 @@
 
 #include <cstddef>
 #include <iostream>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <utility>
 

+ 1 - 1
Source/cmIfCommand.cxx

@@ -11,7 +11,7 @@
 #include "cmSystemTools.h"
 #include "cmake.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 
 static std::string cmIfCommandError(
   std::vector<cmExpandedCommandArgument> const& args)

+ 1 - 1
Source/cmInstallDirectoryGenerator.cxx

@@ -8,7 +8,7 @@
 #include "cmMakefile.h"
 #include "cmSystemTools.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 
 cmInstallDirectoryGenerator::cmInstallDirectoryGenerator(
   std::vector<std::string> const& dirs, const char* dest,

+ 1 - 1
Source/cmInstallFilesGenerator.cxx

@@ -6,7 +6,7 @@
 #include "cmInstallType.h"
 #include "cmSystemTools.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 
 class cmLocalGenerator;
 

+ 1 - 0
Source/cmInstallScriptGenerator.cxx

@@ -2,6 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmInstallScriptGenerator.h"
 
+#include <memory>
 #include <ostream>
 #include <vector>
 

+ 1 - 0
Source/cmInstallTargetGenerator.cxx

@@ -4,6 +4,7 @@
 
 #include <assert.h>
 #include <map>
+#include <memory>
 #include <set>
 #include <sstream>
 #include <utility>

+ 1 - 1
Source/cmInstalledFile.h

@@ -8,7 +8,7 @@
 #include "cmGeneratorExpression.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 0
Source/cmJsonObjects.cxx

@@ -31,6 +31,7 @@
 #include <functional>
 #include <limits>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_map>

+ 2 - 0
Source/cmListCommand.cxx

@@ -7,12 +7,14 @@
 #include <assert.h>
 #include <functional>
 #include <iterator>
+#include <memory>
 #include <set>
 #include <sstream>
 #include <stdexcept>
 #include <stdio.h>
 #include <stdlib.h> // required for atoi
 #include <utility>
+#include <vector>
 
 #include "cmAlgorithms.h"
 #include "cmGeneratorExpression.h"

+ 1 - 1
Source/cmListFileCache.h

@@ -6,7 +6,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <iosfwd>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <stddef.h>
 #include <string>
 #include <utility>

+ 3 - 1
Source/cmLocalGenerator.cxx

@@ -26,22 +26,24 @@
 #include "cmTestGenerator.h"
 #include "cmVersion.h"
 #include "cmake.h"
+#include "cmsys/RegularExpression.hxx"
 
 #if defined(CMAKE_BUILD_WITH_CMAKE)
 #  define CM_LG_ENCODE_OBJECT_NAMES
 #  include "cmCryptoHash.h"
 #endif
 
-#include "cmsys/RegularExpression.hxx"
 #include <algorithm>
 #include <assert.h>
 #include <initializer_list>
 #include <iterator>
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <string.h>
 #include <unordered_set>
 #include <utility>
+#include <vector>
 
 #if defined(__HAIKU__)
 #  include <FindDirectory.h>

+ 1 - 1
Source/cmLocalNinjaGenerator.cxx

@@ -5,7 +5,7 @@
 #include <algorithm>
 #include <assert.h>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <utility>

+ 1 - 1
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -5,7 +5,7 @@
 #include "cmsys/FStream.hxx"
 #include "cmsys/Terminal.h"
 #include <algorithm>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <utility>

+ 1 - 1
Source/cmLocalVisualStudioGenerator.h

@@ -6,7 +6,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 
 #include "cmGlobalVisualStudioGenerator.h"

+ 1 - 1
Source/cmMakefile.cxx

@@ -9,7 +9,7 @@
 #include <cstring>
 #include <ctype.h>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>

+ 1 - 1
Source/cmMakefile.h

@@ -8,7 +8,7 @@
 #include "cmsys/RegularExpression.hxx"
 #include <deque>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <stack>
 #include <stddef.h>

+ 1 - 1
Source/cmMakefileExecutableTargetGenerator.cxx

@@ -2,7 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmMakefileExecutableTargetGenerator.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <sstream>
 #include <string>

+ 1 - 1
Source/cmMakefileLibraryTargetGenerator.cxx

@@ -2,7 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmMakefileLibraryTargetGenerator.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <sstream>
 #include <stddef.h>

+ 1 - 1
Source/cmMakefileTargetGenerator.cxx

@@ -2,7 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmMakefileTargetGenerator.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <utility>

+ 1 - 0
Source/cmMakefileTargetGenerator.h

@@ -7,6 +7,7 @@
 
 #include <iosfwd>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>

+ 1 - 0
Source/cmMakefileUtilityTargetGenerator.cxx

@@ -2,6 +2,7 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmMakefileUtilityTargetGenerator.h"
 
+#include <memory>
 #include <ostream>
 #include <string>
 #include <utility>

+ 1 - 1
Source/cmNinjaNormalTargetGenerator.cxx

@@ -6,7 +6,7 @@
 #include <assert.h>
 #include <iterator>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <sstream>
 #include <utility>

+ 1 - 1
Source/cmNinjaTargetGenerator.cxx

@@ -8,7 +8,7 @@
 #include <assert.h>
 #include <iterator>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <ostream>
 #include <utility>
 

+ 1 - 1
Source/cmNinjaTargetGenerator.h

@@ -13,7 +13,7 @@
 #include "cmOSXBundleGenerator.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>

+ 1 - 0
Source/cmOrderDirectories.cxx

@@ -13,6 +13,7 @@
 #include <assert.h>
 #include <functional>
 #include <sstream>
+#include <vector>
 
 /*
 Directory ordering computation.

+ 1 - 1
Source/cmQtAutoGen.h

@@ -5,7 +5,7 @@
 
 #include "cmConfigure.h" // IWYU pragma: keep
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 1
Source/cmQtAutoGenGlobalInitializer.h

@@ -8,7 +8,7 @@
 #include "cmQtAutoGen.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <unordered_map>
 #include <vector>

+ 1 - 1
Source/cmQtAutoGenInitializer.h

@@ -8,7 +8,7 @@
 #include "cmQtAutoGen.h"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <ostream>
 #include <set>
 #include <string>

+ 2 - 0
Source/cmQtAutoGenerator.cxx

@@ -14,6 +14,8 @@
 #include "cmSystemTools.h"
 #include "cmake.h"
 
+#include <memory>
+
 cmQtAutoGenerator::Logger::Logger()
 {
   // Initialize logger

+ 1 - 1
Source/cmQtAutoMocUic.h

@@ -14,7 +14,7 @@
 #include <atomic>
 #include <cstddef>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_map>

+ 1 - 1
Source/cmRuntimeDependencyArchive.h

@@ -9,7 +9,7 @@
 #include "cmsys/RegularExpression.hxx"
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>

+ 1 - 1
Source/cmServer.h

@@ -10,7 +10,7 @@
 
 #include "cmUVHandlePtr.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 0
Source/cmState.h

@@ -6,6 +6,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
 #include <vector>

+ 1 - 0
Source/cmStateDirectory.cxx

@@ -6,6 +6,7 @@
 #include <algorithm>
 #include <assert.h>
 #include <iterator>
+#include <vector>
 
 #include "cmAlgorithms.h"
 #include "cmProperty.h"

+ 1 - 1
Source/cmStringCommand.cxx

@@ -8,7 +8,7 @@
 #include <algorithm>
 #include <ctype.h>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>

+ 1 - 1
Source/cmTarget.h

@@ -6,7 +6,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <iosfwd>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <utility>

+ 2 - 0
Source/cmTestGenerator.cxx

@@ -2,8 +2,10 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmTestGenerator.h"
 
+#include <memory>
 #include <ostream>
 #include <utility>
+#include <vector>
 
 #include "cmGeneratorExpression.h"
 #include "cmGeneratorTarget.h"

+ 1 - 1
Source/cmUVProcessChain.h

@@ -7,7 +7,7 @@
 
 #include <array>
 #include <iosfwd>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 1
Source/cmVariableWatch.h

@@ -6,7 +6,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <string>
 #include <vector>
 

+ 1 - 1
Source/cmVisualStudio10TargetGenerator.cxx

@@ -19,7 +19,7 @@
 #include "windows.h"
 
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 
 static void ConvertToWindowsSlash(std::string& s);

+ 1 - 1
Source/cmWhileCommand.cxx

@@ -9,7 +9,7 @@
 #include "cmMessageType.h"
 #include "cmSystemTools.h"
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 
 cmWhileFunctionBlocker::cmWhileFunctionBlocker(cmMakefile* mf)
   : Makefile(mf)

+ 1 - 1
Source/cmWorkerPool.h

@@ -7,7 +7,7 @@
 
 #include "cmAlgorithms.h" // IWYU pragma: keep
 
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <stdint.h>
 #include <string>
 #include <utility>

+ 1 - 1
Source/cmake.cxx

@@ -104,7 +104,7 @@
 #include <cstring>
 #include <initializer_list>
 #include <iostream>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>

+ 1 - 1
Source/cmake.h

@@ -7,7 +7,7 @@
 
 #include <functional>
 #include <map>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_set>

+ 1 - 1
Source/cmcmd.cxx

@@ -41,7 +41,7 @@
 #include <array>
 #include <iostream>
 #include <iterator>
-#include <memory> // IWYU pragma: keep
+#include <memory>
 #include <sstream>
 #include <stdio.h>
 #include <stdlib.h>

+ 1 - 0
Tests/CMakeLib/testUVProcessChain.cxx

@@ -10,6 +10,7 @@
 #include <algorithm>
 #include <functional>
 #include <iostream>
+#include <memory>
 #include <sstream>
 #include <string>
 #include <vector>

+ 2 - 0
Tests/CMakeServerLib/testServerBuffering.cpp

@@ -1,6 +1,8 @@
 #include "cmConnection.h"
 #include "cmServerConnection.h"
+
 #include <iostream>
+#include <memory>
 #include <string>
 #include <vector>
 

+ 9 - 2
Utilities/IWYU/mapping.imp

@@ -42,10 +42,17 @@
   { symbol: [ "std::istringstream", private, "<sstream>", public ] },
   { symbol: [ "std::ostringstream", private, "<sstream>", public ] },
 
-  # HACK: iwyu suggests those two files each time vector[] is used.
+  # HACK: iwyu suggests <ext/alloc_traits.h> and <memory> each time vector[] is used.
   # https://github.com/include-what-you-use/include-what-you-use/issues/166
   { include: [ "<ext/alloc_traits.h>", private, "<vector>", public ] },
-  { include: [ "<memory>", public, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<cmComputeComponentGraph::TarjanEntry> >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<cmFortranFile> >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<cmGraphEdgeList> >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<cmOrderDirectories::ConflictList> >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<cmStateSnapshot> >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<std::basic_string<char> > >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<std::vector<std::basic_string<char>, std::allocator<std::basic_string<char> > > > >::value_type", private, "<vector>", public ] },
+  { symbol: [ "std::allocator_traits<std::allocator<uv_stdio_container_s> >::value_type", private, "<vector>", public ] },
 
   # TODO: enable this block and remove some <utility> includes?
   #{ symbol: [ "std::pair", private, "<utility>", public ] },