blob: 113b0ca182e0fede034062390c6b7bd73d0f4059 [file] [log] [blame]
Olivier Deprezf4ef2d02021-04-20 13:36:24 +02001//===--- DeprecatedHeadersCheck.h - clang-tidy-------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_C_HEADERS_TO_CXX_H
10#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_C_HEADERS_TO_CXX_H
11
12#include "../ClangTidyCheck.h"
13
14namespace clang {
15namespace tidy {
16namespace modernize {
17
18/// This check replaces deprecated C library headers with their C++ STL
19/// alternatives.
20///
21/// Before:
22/// ~~~{.cpp}
23/// #include <header.h>
24/// ~~~
25///
26/// After:
27/// ~~~{.cpp}
28/// #include <cheader>
29/// ~~~
30///
31/// Example: ``<stdio.h> => <cstdio>``
32///
33/// For the user-facing documentation see:
34/// http://clang.llvm.org/extra/clang-tidy/checks/modernize-deprecated-headers.html
35class DeprecatedHeadersCheck : public ClangTidyCheck {
36public:
37 DeprecatedHeadersCheck(StringRef Name, ClangTidyContext *Context)
38 : ClangTidyCheck(Name, Context) {}
39 bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
40 return LangOpts.CPlusPlus;
41 }
42 void registerPPCallbacks(const SourceManager &SM, Preprocessor *PP,
43 Preprocessor *ModuleExpanderPP) override;
44};
45
46} // namespace modernize
47} // namespace tidy
48} // namespace clang
49
50#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_C_HEADERS_TO_CXX_H