Skip to content

clang: Handle old C++ standard aliases #2816

@cmorve-te

Description

@cmorve-te

clangtidy.xml includes, for example, both a clang-diagnostic-c++1y-extensions rule and a clang-diagnostic-c++14-extensions rule. They are logically the same rule, though.

If somebody is scanning the output of an old version of clang, and "clang-diagnostic-c++1y-extensions" is found, it should probably be treated as a clang-diagnostic-c++14-extensions match.

AFAICT this applies to the following rules

  • C++14
    clang-diagnostic-c++1y-extensions -> clang-diagnostic-c++14-extensions

  • C++17
    clang-diagnostic-c++1z-compat -> clang-diagnostic-c++17-compat
    clang-diagnostic-c++1z-compat-mangling -> clang-diagnostic-c++17-compat-mangling
    clang-diagnostic-c++1z-extensions -> clang-diagnostic-c++17-extensions

  • C++20
    clang-diagnostic-c++2a-compat -> clang-diagnostic-c++20-compat
    clang-diagnostic-c++2a-compat-pedantic -> clang-diagnostic-c++20-compat-pedantic
    clang-diagnostic-c++2a-extensions -> clang-diagnostic-c++20-extensions

  • C++23
    clang-diagnostic-c++2b-extensions -> clang-diagnostic-c++23-extensions
    clang-diagnostic-pre-c++2b-compat -> clang-diagnostic-pre-c++23-compat
    clang-diagnostic-pre-c++2b-compat-pedantic -> clang-diagnostic-pre-c++23-compat-pedantic

  • C++26
    clang-diagnostic-c++2c-compat -> clang-diagnostic-c++26-compat
    clang-diagnostic-c++2c-extensions -> clang-diagnostic-c++26-extensions
    clang-diagnostic-pre-c++2c-compat -> clang-diagnostic-pre-c++26-compat
    clang-diagnostic-pre-c++2c-compat-pedantic -> clang-diagnostic-pre-c++26-compat-pedantic

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions