This revision was automatically updated to reflect the committed changes. Closed by commit rL278254: [clang-tidy] minor improvements in modernise-deprecated-headers check (authored by omtcyfz).
Changed prior to commit: https://reviews.llvm.org/D17990?vs=67551&id=67560#toc Repository: rL LLVM https://reviews.llvm.org/D17990 Files: clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp
Index: clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp @@ -12,6 +12,7 @@ #include "clang/Lex/PPCallbacks.h" #include "clang/Lex/Preprocessor.h" #include "llvm/ADT/StringMap.h" +#include "llvm/ADT/StringSet.h" #include <vector> @@ -35,6 +36,7 @@ ClangTidyCheck &Check; LangOptions LangOpts; llvm::StringMap<std::string> CStyledHeaderToCxx; + llvm::StringSet<> DeleteHeaders; }; } // namespace @@ -51,31 +53,42 @@ : Check(Check), LangOpts(LangOpts) { for (const auto &KeyValue : std::vector<std::pair<llvm::StringRef, std::string>>( - {{"assert.h", "cassert"}, {"complex.h", "ccomplex"}, - {"ctype.h", "cctype"}, {"errno.h", "cerrno"}, - {"float.h", "cfloat"}, {"inttypes.h", "cinttypes"}, - {"iso646.h", "ciso646"}, {"limits.h", "climits"}, - {"locale.h", "clocale"}, {"math.h", "cmath"}, - {"setjmp.h", "csetjmp"}, {"signal.h", "csignal"}, - {"stdarg.h", "cstdarg"}, {"stddef.h", "cstddef"}, - {"stdint.h", "cstdint"}, {"stdio.h", "cstdio"}, - {"stdlib.h", "cstdlib"}, {"string.h", "cstring"}, - {"time.h", "ctime"}, {"wchar.h", "cwchar"}, + {{"assert.h", "cassert"}, + {"complex.h", "complex"}, + {"ctype.h", "cctype"}, + {"errno.h", "cerrno"}, + {"float.h", "cfloat"}, + {"limits.h", "climits"}, + {"locale.h", "clocale"}, + {"math.h", "cmath"}, + {"setjmp.h", "csetjmp"}, + {"signal.h", "csignal"}, + {"stdarg.h", "cstdarg"}, + {"stddef.h", "cstddef"}, + {"stdio.h", "cstdio"}, + {"stdlib.h", "cstdlib"}, + {"string.h", "cstring"}, + {"time.h", "ctime"}, + {"wchar.h", "cwchar"}, {"wctype.h", "cwctype"}})) { CStyledHeaderToCxx.insert(KeyValue); } // Add C++ 11 headers. if (LangOpts.CPlusPlus11) { for (const auto &KeyValue : std::vector<std::pair<llvm::StringRef, std::string>>( {{"fenv.h", "cfenv"}, - {"stdalign.h", "cstdalign"}, - {"stdbool.h", "cstdbool"}, + {"stdint.h", "cstdint"}, + {"inttypes.h", "cinttypes"}, {"tgmath.h", "ctgmath"}, {"uchar.h", "cuchar"}})) { CStyledHeaderToCxx.insert(KeyValue); } } + for (const auto &Key : + std::vector<std::string>({"stdalign.h", "stdbool.h", "iso646.h"})) { + DeleteHeaders.insert(Key); + } } void IncludeModernizePPCallbacks::InclusionDirective( @@ -86,17 +99,22 @@ // // Reasonable options for the check: // - // 1. Insert std prefix for every such symbol occurance. + // 1. Insert std prefix for every such symbol occurrence. // 2. Insert `using namespace std;` to the beginning of TU. // 3. Do nothing and let the user deal with the migration himself. if (CStyledHeaderToCxx.count(FileName) != 0) { std::string Replacement = (llvm::Twine("<") + CStyledHeaderToCxx[FileName] + ">").str(); - Check.diag(FilenameRange.getBegin(), - "inclusion of deprecated C++ header '%0'; consider using '%1' instead") + Check.diag(FilenameRange.getBegin(), "inclusion of deprecated C++ header " + "'%0'; consider using '%1' instead") << FileName << CStyledHeaderToCxx[FileName] << FixItHint::CreateReplacement(FilenameRange.getAsRange(), Replacement); + } else if (DeleteHeaders.count(FileName) != 0) { + Check.diag(FilenameRange.getBegin(), + "including '%0' has no effect in C++; consider removing it") + << FileName << FixItHint::CreateRemoval( + SourceRange(HashLoc, FilenameRange.getEnd())); } } Index: clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst =================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst +++ clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst @@ -4,10 +4,11 @@ ============================ Some headers from C library were deprecated in C++ and are no longer welcome in -C++ codebases. For more details refer to the C++ 14 Standard [depr.c.headers] -section. +C++ codebases. Some have no effect in C++. For more details refer to the C++ 14 +Standard [depr.c.headers] section. -This check replaces C standard library headers with their C++ alternatives. +This check replaces C standard library headers with their C++ alternatives and +removes redundant ones. Improtant note: the Standard doesn't guarantee that the C++ headers declare all the same functions in the global namespace. The check in its current form can @@ -20,15 +21,12 @@ * `<fenv.h>` // deprecated since C++11 * `<float.h>` * `<inttypes.h>` -* `<iso646.h>` * `<limits.h>` * `<locale.h>` * `<math.h>` * `<setjmp.h>` * `<signal.h>` -* `<stdalign.h>` // deprecated since C++11 * `<stdarg.h>` -* `<stdbool.h>` // deprecated since C++11 * `<stddef.h>` * `<stdint.h>` * `<stdio.h>` @@ -42,4 +40,10 @@ If the specified standard is older than C++11 the check will only replace headers deprecated before C++11, otherwise -- every header that appeared in -the list. +the previous list. + +These headers don't have effect in C++: + +* `<iso646.h>` +* `<stdalign.h>` +* `<stdbool.h>` Index: clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp +++ clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp @@ -1,147 +1,148 @@ // RUN: %check_clang_tidy %s modernize-deprecated-headers %t -- -extra-arg-before=-isystem%S/Inputs/modernize-deprecated-headers -- -std=c++03 -v #include <assert.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers] +// CHECK-FIXES: {{^}}#include <cassert>{{$}} #include <complex.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'complex' instead +// CHECK-FIXES: {{^}}#include <complex>{{$}} #include <ctype.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead +// CHECK-FIXES: {{^}}#include <cctype>{{$}} #include <errno.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead +// CHECK-FIXES: {{^}}#include <cerrno>{{$}} #include <float.h> -#include <inttypes.h> -#include <iso646.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead +// CHECK-FIXES: {{^}}#include <cfloat>{{$}} #include <limits.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead +// CHECK-FIXES: {{^}}#include <climits>{{$}} #include <locale.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead +// CHECK-FIXES: {{^}}#include <clocale>{{$}} #include <math.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead +// CHECK-FIXES: {{^}}#include <cmath>{{$}} #include <setjmp.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead +// CHECK-FIXES: {{^}}#include <csetjmp>{{$}} #include <signal.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead +// CHECK-FIXES: {{^}}#include <csignal>{{$}} #include <stdarg.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead +// CHECK-FIXES: {{^}}#include <cstdarg>{{$}} #include <stddef.h> -#include <stdint.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead +// CHECK-FIXES: {{^}}#include <cstddef>{{$}} #include <stdio.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead +// CHECK-FIXES: {{^}}#include <cstdio>{{$}} #include <stdlib.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead +// CHECK-FIXES: {{^}}#include <cstdlib>{{$}} #include <string.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead +// CHECK-FIXES: {{^}}#include <cstring>{{$}} #include <time.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead +// CHECK-FIXES: {{^}}#include <ctime>{{$}} #include <wchar.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead +// CHECK-FIXES: {{^}}#include <cwchar>{{$}} #include <wctype.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead +// CHECK-FIXES: {{^}}#include <cwctype>{{$}} + +// Headers that have no effect in C++; remove them +#include <stdalign.h> // <stdalign.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdalign.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// <stdalign.h>{{$}} +#include <stdbool.h> // <stdbool.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdbool.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// <stdbool.h>{{$}} +#include <iso646.h> // <iso646.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'iso646.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// <iso646.h>{{$}} // Headers deprecated since C++11: expect no diagnostics. #include <fenv.h> -#include <stdalign.h> -#include <stdbool.h> +#include <inttypes.h> +#include <stdint.h> #include <tgmath.h> #include <uchar.h> -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers] -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'ccomplex' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'inttypes.h'; consider using 'cinttypes' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'iso646.h'; consider using 'ciso646' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead - -// CHECK-FIXES: #include <cassert> -// CHECK-FIXES: #include <ccomplex> -// CHECK-FIXES: #include <cctype> -// CHECK-FIXES: #include <cerrno> -// CHECK-FIXES: #include <cfloat> -// CHECK-FIXES: #include <cinttypes> -// CHECK-FIXES: #include <ciso646> -// CHECK-FIXES: #include <climits> -// CHECK-FIXES: #include <clocale> -// CHECK-FIXES: #include <cmath> -// CHECK-FIXES: #include <csetjmp> -// CHECK-FIXES: #include <csignal> -// CHECK-FIXES: #include <cstdarg> -// CHECK-FIXES: #include <cstddef> -// CHECK-FIXES: #include <cstdint> -// CHECK-FIXES: #include <cstdio> -// CHECK-FIXES: #include <cstdlib> -// CHECK-FIXES: #include <cstring> -// CHECK-FIXES: #include <ctime> -// CHECK-FIXES: #include <cwchar> -// CHECK-FIXES: #include <cwctype> #include "assert.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead +// CHECK-FIXES: {{^}}#include <cassert>{{$}} #include "complex.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'complex' instead +// CHECK-FIXES: {{^}}#include <complex>{{$}} #include "ctype.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead +// CHECK-FIXES: {{^}}#include <cctype>{{$}} #include "errno.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead +// CHECK-FIXES: {{^}}#include <cerrno>{{$}} #include "float.h" -#include "inttypes.h" -#include "iso646.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead +// CHECK-FIXES: {{^}}#include <cfloat>{{$}} #include "limits.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead +// CHECK-FIXES: {{^}}#include <climits>{{$}} #include "locale.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead +// CHECK-FIXES: {{^}}#include <clocale>{{$}} #include "math.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead +// CHECK-FIXES: {{^}}#include <cmath>{{$}} #include "setjmp.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead +// CHECK-FIXES: {{^}}#include <csetjmp>{{$}} #include "signal.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead +// CHECK-FIXES: {{^}}#include <csignal>{{$}} #include "stdarg.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead +// CHECK-FIXES: {{^}}#include <cstdarg>{{$}} #include "stddef.h" -#include "stdint.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead +// CHECK-FIXES: {{^}}#include <cstddef>{{$}} #include "stdio.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead +// CHECK-FIXES: {{^}}#include <cstdio>{{$}} #include "stdlib.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead +// CHECK-FIXES: {{^}}#include <cstdlib>{{$}} #include "string.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead +// CHECK-FIXES: {{^}}#include <cstring>{{$}} #include "time.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead +// CHECK-FIXES: {{^}}#include <ctime>{{$}} #include "wchar.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead +// CHECK-FIXES: {{^}}#include <cwchar>{{$}} #include "wctype.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead +// CHECK-FIXES: {{^}}#include <cwctype> + +// Headers that have no effect in C++; remove them +#include "stdalign.h" // "stdalign.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdalign.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// "stdalign.h"{{$}} +#include "stdbool.h" // "stdbool.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdbool.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// "stdbool.h"{{$}} +#include "iso646.h" // "iso646.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'iso646.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// "iso646.h"{{$}} // Headers deprecated since C++11; expect no diagnostics #include "fenv.h" -#include "stdalign.h" -#include "stdbool.h" +#include "inttypes.h" +#include "stdint.h" #include "tgmath.h" #include "uchar.h" - -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'ccomplex' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'inttypes.h'; consider using 'cinttypes' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'iso646.h'; consider using 'ciso646' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead -// CHECK-MESSAGES: :[[@LINE-29]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead - -// CHECK-FIXES: #include <cassert> -// CHECK-FIXES: #include <ccomplex> -// CHECK-FIXES: #include <cctype> -// CHECK-FIXES: #include <cerrno> -// CHECK-FIXES: #include <cfloat> -// CHECK-FIXES: #include <cinttypes> -// CHECK-FIXES: #include <ciso646> -// CHECK-FIXES: #include <climits> -// CHECK-FIXES: #include <clocale> -// CHECK-FIXES: #include <cmath> -// CHECK-FIXES: #include <csetjmp> -// CHECK-FIXES: #include <csignal> -// CHECK-FIXES: #include <cstdarg> -// CHECK-FIXES: #include <cstddef> -// CHECK-FIXES: #include <cstdint> -// CHECK-FIXES: #include <cstdio> -// CHECK-FIXES: #include <cstdlib> -// CHECK-FIXES: #include <cstring> -// CHECK-FIXES: #include <ctime> -// CHECK-FIXES: #include <cwchar> -// CHECK-FIXES: #include <cwctype> Index: clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp +++ clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp @@ -1,163 +1,163 @@ // RUN: %check_clang_tidy %s modernize-deprecated-headers %t -- -extra-arg-before=-isystem%S/Inputs/modernize-deprecated-headers -- -std=c++11 -v #include <assert.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers] +// CHECK-FIXES: {{^}}#include <cassert>{{$}} #include <complex.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'complex' instead +// CHECK-FIXES: {{^}}#include <complex>{{$}} #include <ctype.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead +// CHECK-FIXES: {{^}}#include <cctype>{{$}} #include <errno.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead +// CHECK-FIXES: {{^}}#include <cerrno>{{$}} #include <fenv.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'fenv.h'; consider using 'cfenv' instead +// CHECK-FIXES: {{^}}#include <cfenv>{{$}} #include <float.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead +// CHECK-FIXES: {{^}}#include <cfloat>{{$}} #include <inttypes.h> -#include <iso646.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'inttypes.h'; consider using 'cinttypes' instead +// CHECK-FIXES: {{^}}#include <cinttypes>{{$}} #include <limits.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead +// CHECK-FIXES: {{^}}#include <climits>{{$}} #include <locale.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead +// CHECK-FIXES: {{^}}#include <clocale>{{$}} #include <math.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead +// CHECK-FIXES: {{^}}#include <cmath>{{$}} #include <setjmp.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead +// CHECK-FIXES: {{^}}#include <csetjmp>{{$}} #include <signal.h> -#include <stdalign.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead +// CHECK-FIXES: {{^}}#include <csignal>{{$}} #include <stdarg.h> -#include <stdbool.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead +// CHECK-FIXES: {{^}}#include <cstdarg>{{$}} #include <stddef.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead +// CHECK-FIXES: {{^}}#include <cstddef>{{$}} #include <stdint.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead +// CHECK-FIXES: {{^}}#include <cstdint>{{$}} #include <stdio.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead +// CHECK-FIXES: {{^}}#include <cstdio>{{$}} #include <stdlib.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead +// CHECK-FIXES: {{^}}#include <cstdlib>{{$}} #include <string.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead +// CHECK-FIXES: {{^}}#include <cstring>{{$}} #include <tgmath.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'tgmath.h'; consider using 'ctgmath' instead +// CHECK-FIXES: {{^}}#include <ctgmath>{{$}} #include <time.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead +// CHECK-FIXES: {{^}}#include <ctime>{{$}} #include <uchar.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'uchar.h'; consider using 'cuchar' instead +// CHECK-FIXES: {{^}}#include <cuchar>{{$}} #include <wchar.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead +// CHECK-FIXES: {{^}}#include <cwchar>{{$}} #include <wctype.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead +// CHECK-FIXES: {{^}}#include <cwctype> -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers] -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'ccomplex' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'fenv.h'; consider using 'cfenv' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'inttypes.h'; consider using 'cinttypes' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'iso646.h'; consider using 'ciso646' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdalign.h'; consider using 'cstdalign' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdbool.h'; consider using 'cstdbool' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'tgmath.h'; consider using 'ctgmath' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'uchar.h'; consider using 'cuchar' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead - -// CHECK-FIXES: #include <cassert> -// CHECK-FIXES: #include <ccomplex> -// CHECK-FIXES: #include <cctype> -// CHECK-FIXES: #include <cerrno> -// CHECK-FIXES: #include <cfenv> -// CHECK-FIXES: #include <cfloat> -// CHECK-FIXES: #include <cinttypes> -// CHECK-FIXES: #include <ciso646> -// CHECK-FIXES: #include <climits> -// CHECK-FIXES: #include <clocale> -// CHECK-FIXES: #include <cmath> -// CHECK-FIXES: #include <csetjmp> -// CHECK-FIXES: #include <csignal> -// CHECK-FIXES: #include <cstdalign> -// CHECK-FIXES: #include <cstdarg> -// CHECK-FIXES: #include <cstdbool> -// CHECK-FIXES: #include <cstddef> -// CHECK-FIXES: #include <cstdint> -// CHECK-FIXES: #include <cstdio> -// CHECK-FIXES: #include <cstdlib> -// CHECK-FIXES: #include <cstring> -// CHECK-FIXES: #include <ctgmath> -// CHECK-FIXES: #include <ctime> -// CHECK-FIXES: #include <cuchar> -// CHECK-FIXES: #include <cwchar> -// CHECK-FIXES: #include <cwctype> +// Headers that have no effect in C++; remove them +#include <stdalign.h> // <stdalign.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdalign.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// <stdalign.h>{{$}} +#include <stdbool.h> // <stdbool.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdbool.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// <stdbool.h>{{$}} +#include <iso646.h> // <iso646.h> +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'iso646.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// <iso646.h>{{$}} #include "assert.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead +// CHECK-FIXES: {{^}}#include <cassert>{{$}} #include "complex.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'complex' instead +// CHECK-FIXES: {{^}}#include <complex>{{$}} #include "ctype.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead +// CHECK-FIXES: {{^}}#include <cctype>{{$}} #include "errno.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead +// CHECK-FIXES: {{^}}#include <cerrno>{{$}} #include "fenv.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'fenv.h'; consider using 'cfenv' instead +// CHECK-FIXES: {{^}}#include <cfenv>{{$}} #include "float.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead +// CHECK-FIXES: {{^}}#include <cfloat>{{$}} #include "inttypes.h" -#include "iso646.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'inttypes.h'; consider using 'cinttypes' instead +// CHECK-FIXES: {{^}}#include <cinttypes>{{$}} #include "limits.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead +// CHECK-FIXES: {{^}}#include <climits>{{$}} #include "locale.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead +// CHECK-FIXES: {{^}}#include <clocale>{{$}} #include "math.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead +// CHECK-FIXES: {{^}}#include <cmath>{{$}} #include "setjmp.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead +// CHECK-FIXES: {{^}}#include <csetjmp>{{$}} #include "signal.h" -#include "stdalign.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead +// CHECK-FIXES: {{^}}#include <csignal>{{$}} #include "stdarg.h" -#include "stdbool.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead +// CHECK-FIXES: {{^}}#include <cstdarg>{{$}} #include "stddef.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead +// CHECK-FIXES: {{^}}#include <cstddef>{{$}} #include "stdint.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead +// CHECK-FIXES: {{^}}#include <cstdint>{{$}} #include "stdio.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead +// CHECK-FIXES: {{^}}#include <cstdio>{{$}} #include "stdlib.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead +// CHECK-FIXES: {{^}}#include <cstdlib>{{$}} #include "string.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead +// CHECK-FIXES: {{^}}#include <cstring>{{$}} #include "tgmath.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'tgmath.h'; consider using 'ctgmath' instead +// CHECK-FIXES: {{^}}#include <ctgmath>{{$}} #include "time.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead +// CHECK-FIXES: {{^}}#include <ctime>{{$}} #include "uchar.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'uchar.h'; consider using 'cuchar' instead +// CHECK-FIXES: {{^}}#include <cuchar>{{$}} #include "wchar.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead +// CHECK-FIXES: {{^}}#include <cwchar>{{$}} #include "wctype.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead +// CHECK-FIXES: {{^}}#include <cwctype> -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'complex.h'; consider using 'ccomplex' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'ctype.h'; consider using 'cctype' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'errno.h'; consider using 'cerrno' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'fenv.h'; consider using 'cfenv' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'float.h'; consider using 'cfloat' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'inttypes.h'; consider using 'cinttypes' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'iso646.h'; consider using 'ciso646' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'limits.h'; consider using 'climits' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'locale.h'; consider using 'clocale' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'math.h'; consider using 'cmath' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'setjmp.h'; consider using 'csetjmp' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'signal.h'; consider using 'csignal' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdalign.h'; consider using 'cstdalign' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdarg.h'; consider using 'cstdarg' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdbool.h'; consider using 'cstdbool' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stddef.h'; consider using 'cstddef' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdio.h'; consider using 'cstdio' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'stdlib.h'; consider using 'cstdlib' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'string.h'; consider using 'cstring' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'tgmath.h'; consider using 'ctgmath' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'time.h'; consider using 'ctime' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'uchar.h'; consider using 'cuchar' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'wchar.h'; consider using 'cwchar' instead -// CHECK-MESSAGES: :[[@LINE-27]]:10: warning: inclusion of deprecated C++ header 'wctype.h'; consider using 'cwctype' instead - -// CHECK-FIXES: #include <cassert> -// CHECK-FIXES: #include <ccomplex> -// CHECK-FIXES: #include <cctype> -// CHECK-FIXES: #include <cerrno> -// CHECK-FIXES: #include <cfenv> -// CHECK-FIXES: #include <cfloat> -// CHECK-FIXES: #include <cinttypes> -// CHECK-FIXES: #include <ciso646> -// CHECK-FIXES: #include <climits> -// CHECK-FIXES: #include <clocale> -// CHECK-FIXES: #include <cmath> -// CHECK-FIXES: #include <csetjmp> -// CHECK-FIXES: #include <csignal> -// CHECK-FIXES: #include <cstdalign> -// CHECK-FIXES: #include <cstdarg> -// CHECK-FIXES: #include <cstdbool> -// CHECK-FIXES: #include <cstddef> -// CHECK-FIXES: #include <cstdint> -// CHECK-FIXES: #include <cstdio> -// CHECK-FIXES: #include <cstdlib> -// CHECK-FIXES: #include <cstring> -// CHECK-FIXES: #include <ctgmath> -// CHECK-FIXES: #include <ctime> -// CHECK-FIXES: #include <cuchar> -// CHECK-FIXES: #include <cwchar> -// CHECK-FIXES: #include <cwctype> +// Headers that have no effect in C++; remove them +#include "stdalign.h" // "stdalign.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdalign.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// "stdalign.h"{{$}} +#include "stdbool.h" // "stdbool.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'stdbool.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// "stdbool.h"{{$}} +#include "iso646.h" // "iso646.h" +// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: including 'iso646.h' has no effect in C++; consider removing it +// CHECK-FIXES: {{^}}// "iso646.h"{{$}}
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits