[clang-tools-extra] r261738 - [clang-tidy] introduce modernize-deprecated-headers check
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 24 16:55:42 PST 2016
The build should be fixed, but the tests for this check fail. I'll fix the
tests tomorrow.
On Thu, Feb 25, 2016 at 12:46 AM, Alexander Kornienko <alexfh at google.com>
wrote:
> I have a couple ideas, will try on the buildbot, since I don't have MSVC
> to try fixes locally.
>
> On Wed, Feb 24, 2016 at 10:27 PM, Alexander Kornienko <alexfh at google.com>
> wrote:
>
>> Looking into this...
>>
>>
>> On Wed, Feb 24, 2016 at 10:21 PM, Nico Weber <thakis at chromium.org> wrote:
>>
>>> This broke the Windows bot:
>>> http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/10093/steps/build%20stage%201/logs/stdio
>>>
>>> FAILED: C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe /nologo /TP /DWIN32
>>> /D_WINDOWS /W4 -wd4141 -wd4146 -wd4180 -wd4244 -wd4258 -wd4267 -wd4291
>>> -wd4345 -wd4351 -wd4355 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624
>>> -wd4722 -wd4800 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702
>>> -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204
>>> -wd4577 -wd4091 -wd4592 -wd4319 -wd4324 -w14062 -we4238 /Zc:inline /Oi
>>> /Zc:rvalueCast /MD /O2 /Ob2 -Itools\clang\tools\extra\clang-tidy\modernize
>>> -ID:\buildslave\clang-x64-ninja-win7\llvm\tools\clang\tools\extra\clang-tidy\modernize
>>> -ID:\buildslave\clang-x64-ninja-win7\llvm\tools\clang\include
>>> -Itools\clang\include -Iinclude
>>> -ID:\buildslave\clang-x64-ninja-win7\llvm\include -UNDEBUG /EHs-c- /GR-
>>> /showIncludes -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_OBJC_REWRITER
>>> -DCLANG_ENABLE_STATIC_ANALYZER -DGTEST_HAS_RTTI=0
>>> -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
>>> -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
>>> -D_DEBUG_POINTER_IMPL="" -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0
>>> -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS
>>> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
>>> /Fotools\clang\tools\extra\clang-tidy\modernize\CMakeFiles\clangTidyModernizeModule.dir\DeprecatedHeadersCheck.cpp.obj
>>> /Fdtools\clang\tools\extra\clang-tidy\modernize\CMakeFiles\clangTidyModernizeModule.dir\
>>> /FS -c
>>> D:\buildslave\clang-x64-ninja-win7\llvm\tools\clang\tools\extra\clang-tidy\modernize\DeprecatedHeadersCheck.cpp
>>> D:\buildslave\clang-x64-ninja-win7\llvm\tools\clang\tools\extra\clang-tidy\modernize\DeprecatedHeadersCheck.cpp(72)
>>> : error C2668:
>>> 'llvm::StringMap<std::string,llvm::MallocAllocator>::StringMap' : ambiguous
>>> call to overloaded function
>>>
>>> D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/ADT/StringMap.h(399):
>>> could be
>>> 'llvm::StringMap<std::string,llvm::MallocAllocator>::StringMap(const
>>> llvm::StringMap<std::string,llvm::MallocAllocator> &)'
>>>
>>> D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/ADT/StringMap.h(242):
>>> or
>>> 'llvm::StringMap<std::string,llvm::MallocAllocator>::StringMap(llvm::StringMap<std::string,llvm::MallocAllocator>
>>> &&)'
>>>
>>> D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/ADT/StringMap.h(235):
>>> or
>>> 'llvm::StringMap<std::string,llvm::MallocAllocator>::StringMap(std::initializer_list<std::pair<llvm::StringRef,ValueTy>>)'
>>> with
>>> [
>>> ValueTy=std::string
>>> ]
>>>
>>> D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/ADT/StringMap.h(228):
>>> or
>>> 'llvm::StringMap<std::string,llvm::MallocAllocator>::StringMap(AllocatorTy)'
>>> with
>>> [
>>> AllocatorTy=llvm::MallocAllocator
>>> ]
>>>
>>> D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/ADT/StringMap.h(225):
>>> or
>>> 'llvm::StringMap<std::string,llvm::MallocAllocator>::StringMap(unsigned
>>> int)'
>>> while trying to match the argument list '(initializer-list)'
>>> Creating library lib\libclang.lib and object lib\libclang.exp
>>>
>>>
>>> On Wed, Feb 24, 2016 at 8:36 AM, Alexander Kornienko via cfe-commits <
>>> cfe-commits at lists.llvm.org> wrote:
>>>
>>>> Author: alexfh
>>>> Date: Wed Feb 24 07:36:34 2016
>>>> New Revision: 261738
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=261738&view=rev
>>>> Log:
>>>> [clang-tidy] introduce modernize-deprecated-headers check
>>>>
>>>> Summary:
>>>> This patch introduces the modernize-deprecated-headers check, which is
>>>> supposed to replace deprecated C library headers with the C++ STL-ones.
>>>>
>>>> For information see documentation; for exmaples see the test cases.
>>>>
>>>> Reviewers: Eugene.Zelenko, LegalizeAdulthood, alexfh
>>>>
>>>> Subscribers: cfe-commits
>>>>
>>>> Patch by Kirill Bobyrev!
>>>>
>>>> Differential Revision: http://reviews.llvm.org/D17484
>>>>
>>>> Added:
>>>>
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
>>>>
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.h
>>>>
>>>> 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
>>>> Modified:
>>>> clang-tools-extra/trunk/clang-tidy/modernize/CMakeLists.txt
>>>> clang-tools-extra/trunk/clang-tidy/modernize/ModernizeTidyModule.cpp
>>>> clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
>>>>
>>>> Modified: clang-tools-extra/trunk/clang-tidy/modernize/CMakeLists.txt
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/CMakeLists.txt?rev=261738&r1=261737&r2=261738&view=diff
>>>>
>>>> ==============================================================================
>>>> --- clang-tools-extra/trunk/clang-tidy/modernize/CMakeLists.txt
>>>> (original)
>>>> +++ clang-tools-extra/trunk/clang-tidy/modernize/CMakeLists.txt Wed Feb
>>>> 24 07:36:34 2016
>>>> @@ -1,6 +1,7 @@
>>>> set(LLVM_LINK_COMPONENTS support)
>>>>
>>>> add_clang_library(clangTidyModernizeModule
>>>> + DeprecatedHeadersCheck.cpp
>>>> LoopConvertCheck.cpp
>>>> LoopConvertUtils.cpp
>>>> MakeUniqueCheck.cpp
>>>>
>>>> Added:
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp?rev=261738&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
>>>> (added)
>>>> +++
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.cpp Wed
>>>> Feb 24 07:36:34 2016
>>>> @@ -0,0 +1,110 @@
>>>> +//===--- DeprecatedHeadersCheck.cpp -
>>>> clang-tidy---------------------------===//
>>>> +//
>>>> +// The LLVM Compiler Infrastructure
>>>> +//
>>>> +// This file is distributed under the University of Illinois Open
>>>> Source
>>>> +// License. See LICENSE.TXT for details.
>>>> +//
>>>>
>>>> +//===----------------------------------------------------------------------===//
>>>> +
>>>> +#include "DeprecatedHeadersCheck.h"
>>>> +#include "clang/Frontend/CompilerInstance.h"
>>>> +#include "clang/Lex/PPCallbacks.h"
>>>> +#include "clang/Lex/Preprocessor.h"
>>>> +#include "llvm/ADT/StringMap.h"
>>>> +
>>>> +#include <vector>
>>>> +
>>>> +namespace clang {
>>>> +namespace tidy {
>>>> +namespace modernize {
>>>> +
>>>> +namespace {
>>>> +class IncludeModernizePPCallbacks : public PPCallbacks {
>>>> +public:
>>>> + explicit IncludeModernizePPCallbacks(ClangTidyCheck &Check,
>>>> + LangOptions LangOpts);
>>>> +
>>>> + void InclusionDirective(SourceLocation HashLoc, const Token
>>>> &IncludeTok,
>>>> + StringRef FileName, bool IsAngled,
>>>> + CharSourceRange FilenameRange, const
>>>> FileEntry *File,
>>>> + StringRef SearchPath, StringRef RelativePath,
>>>> + const Module *Imported) override;
>>>> +
>>>> +private:
>>>> + ClangTidyCheck &Check;
>>>> + LangOptions LangOpts;
>>>> + llvm::StringMap<std::string> CStyledHeaderToCxx;
>>>> +};
>>>> +} // namespace
>>>> +
>>>> +void DeprecatedHeadersCheck::registerPPCallbacks(CompilerInstance
>>>> &Compiler) {
>>>> + if (this->getLangOpts().CPlusPlus) {
>>>> + Compiler.getPreprocessor().addPPCallbacks(
>>>> + ::llvm::make_unique<IncludeModernizePPCallbacks>(*this,
>>>> +
>>>> this->getLangOpts()));
>>>> + }
>>>> +}
>>>> +
>>>> +IncludeModernizePPCallbacks::IncludeModernizePPCallbacks(ClangTidyCheck
>>>> &Check,
>>>> + LangOptions
>>>> LangOpts)
>>>> + : Check(Check), LangOpts(LangOpts),
>>>> + CStyledHeaderToCxx({{"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"},
>>>> + {"wctype.h", "cwctype"}}) {
>>>> + // Add C++ 11 headers.
>>>> + if (LangOpts.CPlusPlus11) {
>>>> + for (const auto &it : std::vector<std::pair<std::string,
>>>> std::string>>(
>>>> + {{"fenv.h", "cfenv"},
>>>> + {"stdalign.h", "cstdalign"},
>>>> + {"stdbool.h", "cstdbool"},
>>>> + {"tgmath.h", "ctgmath"},
>>>> + {"uchar.h", "cuchar"}})) {
>>>> + CStyledHeaderToCxx.insert(it);
>>>> + }
>>>> + }
>>>> +}
>>>> +
>>>> +void IncludeModernizePPCallbacks::InclusionDirective(
>>>> + SourceLocation HashLoc, const Token &IncludeTok, StringRef
>>>> FileName,
>>>> + bool IsAngled, CharSourceRange FilenameRange, const FileEntry
>>>> *File,
>>>> + StringRef SearchPath, StringRef RelativePath, const Module
>>>> *Imported) {
>>>> + // FIXME: Take care of library symbols from the global namespace.
>>>> + //
>>>> + // Reasonable options for the check:
>>>> + //
>>>> + // 1. Insert std prefix for every such symbol occurance.
>>>> + // 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")
>>>> + << FileName << CStyledHeaderToCxx[FileName]
>>>> + << FixItHint::CreateReplacement(FilenameRange.getAsRange(),
>>>> + Replacement);
>>>> + }
>>>> +}
>>>> +
>>>> +} // namespace modernize
>>>> +} // namespace tidy
>>>> +} // namespace clang
>>>>
>>>> Added:
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.h
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.h?rev=261738&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.h
>>>> (added)
>>>> +++
>>>> clang-tools-extra/trunk/clang-tidy/modernize/DeprecatedHeadersCheck.h Wed
>>>> Feb 24 07:36:34 2016
>>>> @@ -0,0 +1,42 @@
>>>> +//===--- DeprecatedHeadersCheck.h - clang-tidy-------------------*-
>>>> C++ -*-===//
>>>> +//
>>>> +// The LLVM Compiler Infrastructure
>>>> +//
>>>> +// This file is distributed under the University of Illinois Open
>>>> Source
>>>> +// License. See LICENSE.TXT for details.
>>>> +//
>>>>
>>>> +//===----------------------------------------------------------------------===//
>>>> +
>>>> +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_C_HEADERS_TO_CXX_H
>>>> +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_C_HEADERS_TO_CXX_H
>>>> +
>>>> +#include "../ClangTidy.h"
>>>> +
>>>> +namespace clang {
>>>> +namespace tidy {
>>>> +namespace modernize {
>>>> +
>>>> +/// This check replaces deprecated C library headers with their C++ STL
>>>> +/// alternatives.
>>>> +///
>>>> +/// Before:
>>>> +/// #include <header.h>
>>>> +/// After:
>>>> +/// #include <cheader>
>>>> +///
>>>> +/// Example: <stdio.h> => <cstdio>
>>>> +///
>>>> +/// For the user-facing documentation see:
>>>> +///
>>>> http://clang.llvm.org/extra/clang-tidy/checks/modernize-deprecated-headers.html
>>>> +class DeprecatedHeadersCheck : public ClangTidyCheck {
>>>> +public:
>>>> + DeprecatedHeadersCheck(StringRef Name, ClangTidyContext *Context)
>>>> + : ClangTidyCheck(Name, Context) {}
>>>> + void registerPPCallbacks(CompilerInstance &Compiler) override;
>>>> +};
>>>> +
>>>> +} // namespace modernize
>>>> +} // namespace tidy
>>>> +} // namespace clang
>>>> +
>>>> +#endif //
>>>> LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_C_HEADERS_TO_CXX_H
>>>>
>>>> Modified:
>>>> clang-tools-extra/trunk/clang-tidy/modernize/ModernizeTidyModule.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/ModernizeTidyModule.cpp?rev=261738&r1=261737&r2=261738&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> clang-tools-extra/trunk/clang-tidy/modernize/ModernizeTidyModule.cpp
>>>> (original)
>>>> +++
>>>> clang-tools-extra/trunk/clang-tidy/modernize/ModernizeTidyModule.cpp Wed
>>>> Feb 24 07:36:34 2016
>>>> @@ -10,6 +10,7 @@
>>>> #include "../ClangTidy.h"
>>>> #include "../ClangTidyModule.h"
>>>> #include "../ClangTidyModuleRegistry.h"
>>>> +#include "DeprecatedHeadersCheck.h"
>>>> #include "LoopConvertCheck.h"
>>>> #include "MakeUniqueCheck.h"
>>>> #include "PassByValueCheck.h"
>>>> @@ -30,6 +31,8 @@ namespace modernize {
>>>> class ModernizeModule : public ClangTidyModule {
>>>> public:
>>>> void addCheckFactories(ClangTidyCheckFactories &CheckFactories)
>>>> override {
>>>> + CheckFactories.registerCheck<DeprecatedHeadersCheck>(
>>>> + "modernize-deprecated-headers");
>>>>
>>>> CheckFactories.registerCheck<LoopConvertCheck>("modernize-loop-convert");
>>>>
>>>> CheckFactories.registerCheck<MakeUniqueCheck>("modernize-make-unique");
>>>>
>>>> CheckFactories.registerCheck<PassByValueCheck>("modernize-pass-by-value");
>>>>
>>>> Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst?rev=261738&r1=261737&r2=261738&view=diff
>>>>
>>>> ==============================================================================
>>>> --- clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (original)
>>>> +++ clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst Wed Feb 24
>>>> 07:36:34 2016
>>>> @@ -74,6 +74,7 @@ Clang-Tidy Checks
>>>> misc-unused-parameters
>>>> misc-unused-raii
>>>> misc-virtual-near-miss
>>>> + modernize-deprecated-headers
>>>> modernize-loop-convert
>>>> modernize-make-unique
>>>> modernize-pass-by-value
>>>>
>>>> Added:
>>>> clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst?rev=261738&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst
>>>> (added)
>>>> +++
>>>> clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-deprecated-headers.rst
>>>> Wed Feb 24 07:36:34 2016
>>>> @@ -0,0 +1,45 @@
>>>> +.. title:: clang-tidy - modernize-deprecated-headers
>>>> +
>>>> +modernize-deprecated-headers
>>>> +==========================
>>>> +
>>>> +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.
>>>> +
>>>> +This check replaces C standard library headers with their C++
>>>> alternatives.
>>>> +
>>>> +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
>>>> +break the code that uses library symbols from the global namespace.
>>>> +
>>>> +* `<assert.h>`
>>>> +* `<complex.h>`
>>>> +* `<ctype.h>`
>>>> +* `<errno.h>`
>>>> +* `<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>`
>>>> +* `<stdlib.h>`
>>>> +* `<string.h>`
>>>> +* `<tgmath.h>` // deprecated since C++11
>>>> +* `<time.h>`
>>>> +* `<uchar.h>` // deprecated since C++11
>>>> +* `<wchar.h>`
>>>> +* `<wctype.h>`
>>>> +
>>>> +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.
>>>>
>>>> Added:
>>>> clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp?rev=261738&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp
>>>> (added)
>>>> +++
>>>> clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx03.cpp
>>>> Wed Feb 24 07:36:34 2016
>>>> @@ -0,0 +1,147 @@
>>>> +// RUN: %check_clang_tidy %s modernize-deprecated-headers %t -- --
>>>> -std=c++03 -isystem %S/Inputs/Headers
>>>> +
>>>> +#include <assert.h>
>>>> +#include <complex.h>
>>>> +#include <ctype.h>
>>>> +#include <errno.h>
>>>> +#include <float.h>
>>>> +#include <inttypes.h>
>>>> +#include <iso646.h>
>>>> +#include <limits.h>
>>>> +#include <locale.h>
>>>> +#include <math.h>
>>>> +#include <setjmp.h>
>>>> +#include <signal.h>
>>>> +#include <stdarg.h>
>>>> +#include <stddef.h>
>>>> +#include <stdint.h>
>>>> +#include <stdio.h>
>>>> +#include <stdlib.h>
>>>> +#include <string.h>
>>>> +#include <time.h>
>>>> +#include <wchar.h>
>>>> +#include <wctype.h>
>>>> +
>>>> +// Headers deprecated since C++11: expect no diagnostics.
>>>> +#include <fenv.h>
>>>> +#include <stdalign.h>
>>>> +#include <stdbool.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"
>>>> +#include "complex.h"
>>>> +#include "ctype.h"
>>>> +#include "errno.h"
>>>> +#include "float.h"
>>>> +#include "inttypes.h"
>>>> +#include "iso646.h"
>>>> +#include "limits.h"
>>>> +#include "locale.h"
>>>> +#include "math.h"
>>>> +#include "setjmp.h"
>>>> +#include "signal.h"
>>>> +#include "stdarg.h"
>>>> +#include "stddef.h"
>>>> +#include "stdint.h"
>>>> +#include "stdio.h"
>>>> +#include "stdlib.h"
>>>> +#include "string.h"
>>>> +#include "time.h"
>>>> +#include "wchar.h"
>>>> +#include "wctype.h"
>>>> +
>>>> +// Headers deprecated since C++11; expect no diagnostics
>>>> +#include "fenv.h"
>>>> +#include "stdalign.h"
>>>> +#include "stdbool.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>
>>>>
>>>> Added:
>>>> clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp?rev=261738&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp
>>>> (added)
>>>> +++
>>>> clang-tools-extra/trunk/test/clang-tidy/modernize-deprecated-headers-cxx11.cpp
>>>> Wed Feb 24 07:36:34 2016
>>>> @@ -0,0 +1,163 @@
>>>> +// RUN: %check_clang_tidy %s modernize-deprecated-headers %t -- --
>>>> -std=c++11 -isystem %S/Inputs/Headers
>>>> +
>>>> +#include <assert.h>
>>>> +#include <complex.h>
>>>> +#include <ctype.h>
>>>> +#include <errno.h>
>>>> +#include <fenv.h>
>>>> +#include <float.h>
>>>> +#include <inttypes.h>
>>>> +#include <iso646.h>
>>>> +#include <limits.h>
>>>> +#include <locale.h>
>>>> +#include <math.h>
>>>> +#include <setjmp.h>
>>>> +#include <signal.h>
>>>> +#include <stdalign.h>
>>>> +#include <stdarg.h>
>>>> +#include <stdbool.h>
>>>> +#include <stddef.h>
>>>> +#include <stdint.h>
>>>> +#include <stdio.h>
>>>> +#include <stdlib.h>
>>>> +#include <string.h>
>>>> +#include <tgmath.h>
>>>> +#include <time.h>
>>>> +#include <uchar.h>
>>>> +#include <wchar.h>
>>>> +#include <wctype.h>
>>>> +
>>>> +// 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>
>>>> +
>>>> +#include "assert.h"
>>>> +#include "complex.h"
>>>> +#include "ctype.h"
>>>> +#include "errno.h"
>>>> +#include "fenv.h"
>>>> +#include "float.h"
>>>> +#include "inttypes.h"
>>>> +#include "iso646.h"
>>>> +#include "limits.h"
>>>> +#include "locale.h"
>>>> +#include "math.h"
>>>> +#include "setjmp.h"
>>>> +#include "signal.h"
>>>> +#include "stdalign.h"
>>>> +#include "stdarg.h"
>>>> +#include "stdbool.h"
>>>> +#include "stddef.h"
>>>> +#include "stdint.h"
>>>> +#include "stdio.h"
>>>> +#include "stdlib.h"
>>>> +#include "string.h"
>>>> +#include "tgmath.h"
>>>> +#include "time.h"
>>>> +#include "uchar.h"
>>>> +#include "wchar.h"
>>>> +#include "wctype.h"
>>>> +
>>>> +// 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>
>>>>
>>>>
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160225/c0fad398/attachment-0001.html>
More information about the cfe-commits
mailing list