Run ClangTidy tests in all C++ language modes

Summary:
I inspected every test and did one of the following:

- changed the test to run in all language modes,

- added a comment explaining why the test is only applicable in a
  certain mode,

- limited the test to language modes where it passes and added a FIXME
  to fix the checker or the test.

Reviewers: alexfh, lebedev.ri

Subscribers: nemanjai, kbarton, arphaman, jdoerfert, lebedev.ri, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D62125

llvm-svn: 361131
This commit is contained in:
Dmitri Gribenko 2019-05-20 09:26:47 +00:00
parent a760e69840
commit cb18647b19
141 changed files with 282 additions and 210 deletions

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s abseil-duration-unnecessary-conversion %t -- -- -I%S/Inputs
// RUN: %check_clang_tidy -std=c++11,c++14 %s abseil-duration-unnecessary-conversion %t -- -- -I %S/Inputs
// FIXME: Fix the checker to work in C++17 mode.
#include "absl/time/time.h"

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s abseil-faster-strsplit-delimiter %t
// RUN: %check_clang_tidy -std=c++11,c++14 %s abseil-faster-strsplit-delimiter %t
// FIXME: Fix the checker to work in C++17 mode.
namespace absl {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s abseil-str-cat-append %t -- -- -I%S -std=c++11
// RUN: %check_clang_tidy %s abseil-str-cat-append %t
typedef unsigned __INT16_TYPE__ char16;
typedef unsigned __INT32_TYPE__ char32;

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s abseil-string-find-startswith %t -- \
// RUN: -config="{CheckOptions: [{key: 'abseil-string-find-startswith.StringLikeClasses', value: '::std::basic_string;::basic_string'}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: 'abseil-string-find-startswith.StringLikeClasses', value: '::std::basic_string;::basic_string'}]}"
namespace std {
template <typename T> class allocator {};

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s abseil-time-subtraction %t -- -- -I%S/Inputs
// RUN: %check_clang_tidy -std=c++11,c++14 %s abseil-time-subtraction %t -- -- -I %S/Inputs
// FIXME: Fix the checker to work in C++17 mode.
#include "absl/time/time.h"

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s abseil-upgrade-duration-conversions %t -- -- -I%S/Inputs
// RUN: %check_clang_tidy -std=c++11,c++14 %s abseil-upgrade-duration-conversions %t -- -- -I%S/Inputs
// FIXME: Fix the checker to work in C++17 mode.
using int64_t = long long;

View File

@ -1,8 +1,8 @@
// RUN: %check_clang_tidy %s bugprone-dangling-handle %t -- \
// RUN: %check_clang_tidy -std=c++11,c++14 %s bugprone-dangling-handle %t -- \
// RUN: -config="{CheckOptions: \
// RUN: [{key: bugprone-dangling-handle.HandleClasses, \
// RUN: value: 'std::basic_string_view; ::llvm::StringRef;'}]}" \
// RUN: -- -std=c++11
// RUN: value: 'std::basic_string_view; ::llvm::StringRef;'}]}"
// FIXME: Fix the checker to work in C++17 mode.
namespace std {

View File

@ -1,4 +1,9 @@
// RUN: %check_clang_tidy %s bugprone-exception-escape %t -- -extra-arg=-std=c++11 -extra-arg=-fexceptions -config="{CheckOptions: [{key: bugprone-exception-escape.IgnoredExceptions, value: 'ignored1,ignored2'}, {key: bugprone-exception-escape.FunctionsThatShouldNotThrow, value: 'enabled1,enabled2,enabled3'}]}" --
// RUN: %check_clang_tidy -std=c++11,c++14 %s bugprone-exception-escape %t -- \
// RUN: -config="{CheckOptions: [ \
// RUN: {key: bugprone-exception-escape.IgnoredExceptions, value: 'ignored1,ignored2'}, \
// RUN: {key: bugprone-exception-escape.FunctionsThatShouldNotThrow, value: 'enabled1,enabled2,enabled3'} \
// RUN: ]}" \
// RUN: -- -fexceptions
struct throwing_destructor {
~throwing_destructor() {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s bugprone-forwarding-reference-overload %t -- -- -std=c++14
// RUN: %check_clang_tidy %s bugprone-forwarding-reference-overload %t
namespace std {
template <bool B, class T = void> struct enable_if { typedef T type; };

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s bugprone-inaccurate-erase %t
// RUN: %check_clang_tidy -std=c++11,c++14 %s bugprone-inaccurate-erase %t
// FIXME: Fix the checker to work in C++17 mode.
namespace std {
template <typename T> struct vec_iterator {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s bugprone-move-forwarding-reference %t -- -- -std=c++14 -fno-delayed-template-parsing
// RUN: %check_clang_tidy -std=c++14-or-later %s bugprone-move-forwarding-reference %t -- -- -fno-delayed-template-parsing
namespace std {
template <typename> struct remove_reference;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s bugprone-sizeof-container %t -- -- -std=c++11 -target x86_64-unknown-unknown
// RUN: %check_clang_tidy %s bugprone-sizeof-container %t -- -- -target x86_64-unknown-unknown
namespace std {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cert-err34-c %t -- -- -std=c++11
// RUN: %check_clang_tidy %s cert-err34-c %t
typedef void * FILE;

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s cert-msc51-cpp %t -- -config="{CheckOptions: [{key: cert-msc51-cpp.DisallowedSeedTypes, value: 'some_type,time_t'}]}" -- -std=c++11
// RUN: %check_clang_tidy %s cert-msc51-cpp %t -- \
// RUN: -config="{CheckOptions: [{key: cert-msc51-cpp.DisallowedSeedTypes, value: 'some_type,time_t'}]}"
namespace std {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cert-oop11-cpp %t -- -- -std=c++11
// RUN: %check_clang_tidy %s cert-oop11-cpp %t
struct B {
B(B&&) noexcept = default;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cert-err52-cpp %t -- -- -std=c++11
// RUN: %check_clang_tidy %s cert-err52-cpp %t
typedef void *jmp_buf;
extern int __setjmpimpl(jmp_buf);

View File

@ -1,4 +1,6 @@
// RUN: %check_clang_tidy %s cert-err60-cpp %t -- -- -std=c++11 -fcxx-exceptions
// RUN: %check_clang_tidy -std=c++11,c++14 %s cert-err60-cpp %t -- -- -fcxx-exceptions
// FIXME: Split off parts of this test that rely on dynamic exeption
// specifications, and run this test in all language modes.
struct S {};
struct T : S {};

View File

@ -38,29 +38,15 @@ def write_file(file_name, text):
f.write(text)
f.truncate()
def csv(string):
return string.split(',')
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-expect-clang-tidy-error', action='store_true')
parser.add_argument('-resource-dir')
parser.add_argument('-assume-filename')
parser.add_argument('input_file_name')
parser.add_argument('check_name')
parser.add_argument('temp_file_name')
parser.add_argument('-check-suffix', '-check-suffixes',
default=[''], type=csv,
help="comma-separated list of FileCheck suffixes")
args, extra_args = parser.parse_known_args()
def run_test_once(args, extra_args):
resource_dir = args.resource_dir
assume_file_name = args.assume_filename
input_file_name = args.input_file_name
check_name = args.check_name
temp_file_name = args.temp_file_name
expect_clang_tidy_error = args.expect_clang_tidy_error
std = args.std
file_name_with_extension = assume_file_name or input_file_name
_, extension = os.path.splitext(file_name_with_extension)
@ -82,12 +68,11 @@ def main():
[arg.startswith('-format-style=') for arg in clang_tidy_extra_args]):
clang_tidy_extra_args.append('-format-style=none')
if len(clang_extra_args) == 0:
if extension in ['.cpp', '.hpp', '.mm']:
clang_extra_args.append('--std=c++11')
if extension in ['.m', '.mm']:
clang_extra_args.extend(
['-fobjc-abi-version=2', '-fobjc-arc'])
if extension in ['.m', '.mm']:
clang_extra_args = ['-fobjc-abi-version=2', '-fobjc-arc'] + clang_extra_args
if extension in ['.cpp', '.hpp', '.mm']:
clang_extra_args.append('-std=' + std)
# Tests should not rely on STL being available, and instead provide mock
# implementations of relevant APIs.
@ -215,5 +200,49 @@ def main():
print('FileCheck failed:\n' + e.output.decode())
raise
def expand_std(std):
if std == 'c++98-or-later':
return ['c++98', 'c++11', 'c++14', 'c++17', 'c++2a']
if std == 'c++11-or-later':
return ['c++11', 'c++14', 'c++17', 'c++2a']
if std == 'c++14-or-later':
return ['c++14', 'c++17', 'c++2a']
if std == 'c++17-or-later':
return ['c++17', 'c++2a']
if std == 'c++2a-or-later':
return ['c++2a']
return [std]
def csv(string):
return string.split(',')
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-expect-clang-tidy-error', action='store_true')
parser.add_argument('-resource-dir')
parser.add_argument('-assume-filename')
parser.add_argument('input_file_name')
parser.add_argument('check_name')
parser.add_argument('temp_file_name')
parser.add_argument(
'-check-suffix',
'-check-suffixes',
default=[''],
type=csv,
help='comma-separated list of FileCheck suffixes')
parser.add_argument('-std', type=csv, default=['c++11-or-later'])
args, extra_args = parser.parse_known_args()
abbreviated_stds = args.std
for abbreviated_std in abbreviated_stds:
for std in expand_std(abbreviated_std):
args.std = std
run_test_once(args, extra_args)
if __name__ == '__main__':
main()

View File

@ -2,7 +2,7 @@
// RUN: -config='{CheckOptions: \
// RUN: [{key: cppcoreguidelines-owning-memory.LegacyResourceProducers, value: "::malloc;::aligned_alloc;::realloc;::calloc;::fopen;::freopen;::tmpfile"}, \
// RUN: {key: cppcoreguidelines-owning-memory.LegacyResourceConsumers, value: "::free;::realloc;::freopen;::fclose"}]}' \
// RUN: -- -std=c++11 -nostdlib -nostdinc++
// RUN: -- -nostdlib -nostdinc++
namespace gsl {
template <class T>

View File

@ -1,4 +1,4 @@
// RUN: clang-tidy %s -checks=-*,cppcoreguidelines-pro-bounds-constant-array-index -- -std=c++03 | count 0
// RUN: %check_clang_tidy -std=c++98-or-later %s cppcoreguidelines-pro-bounds-constant-array-index %t
// Note: this test expects no diagnostics, but FileCheck cannot handle that,
// hence the use of | count 0.
@ -6,6 +6,7 @@ template <int index> struct B {
int get() {
// The next line used to crash the check (in C++03 mode only).
return x[index];
// CHECK-FIXES: return x[index];
}
int x[3];
};

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-pro-bounds-constant-array-index %t -- -config='{CheckOptions: [{key: cppcoreguidelines-pro-bounds-constant-array-index.GslHeader, value: "dir1/gslheader.h"}]}' -- -std=c++11
// RUN: %check_clang_tidy %s cppcoreguidelines-pro-bounds-constant-array-index %t -- \
// RUN: -config='{CheckOptions: [{key: cppcoreguidelines-pro-bounds-constant-array-index.GslHeader, value: "dir1/gslheader.h"}]}'
// CHECK-FIXES: #include "dir1/gslheader.h"
typedef __SIZE_TYPE__ size_t;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-pro-bounds-pointer-arithmetic %t -- -- -std=c++14
// RUN: %check_clang_tidy -std=c++14-or-later %s cppcoreguidelines-pro-bounds-pointer-arithmetic %t
// Fix PR36489 and detect auto-deduced value correctly.
char *getPtr();

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-pro-type-member-init %t -- -- -std=c++2a -fno-delayed-template-parsing
// RUN: %check_clang_tidy -std=c++2a %s cppcoreguidelines-pro-type-member-init %t -- -- -fno-delayed-template-parsing
struct PositiveBitfieldMember {
PositiveBitfieldMember() {}

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-pro-type-member-init %t -- -- -std=c++98 -fno-delayed-template-parsing
// RUN: %check_clang_tidy -std=c++98 %s cppcoreguidelines-pro-type-member-init %t -- -- -fno-delayed-template-parsing
struct PositiveFieldBeforeConstructor {
int F;

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-pro-type-member-init %t -- -- -std=c++11 -fno-delayed-template-parsing
// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s cppcoreguidelines-pro-type-member-init %t -- -- -fno-delayed-template-parsing
// FIXME: Fix the checker to work in C++2a mode.
struct PositiveFieldBeforeConstructor {
int F;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-special-member-functions %t -- -- -std=c++03
// RUN: %check_clang_tidy -std=c++98 %s cppcoreguidelines-special-member-functions %t
class DefinesDestructor {
~DefinesDestructor();

View File

@ -2,25 +2,47 @@
// RUN: rm -rf %t
// RUN: mkdir %t
// RUN: cp %S/Inputs/expand-modular-headers-ppcallbacks/* %t/
// RUN: %check_clang_tidy %s readability-identifier-naming %t/without-modules -- \
// RUN: %check_clang_tidy -std=c++11 %s readability-identifier-naming %t/without-modules -- \
// RUN: -config="CheckOptions: [{ \
// RUN: key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }]" \
// RUN: -header-filter=.* \
// RUN: -- -x c++ -std=c++11 -I%t/
// RUN: -- -I %t/
//
// RUN: rm -rf %t
// RUN: mkdir %t
// RUN: cp %S/Inputs/expand-modular-headers-ppcallbacks/* %t/
// RUN: %check_clang_tidy -std=c++17 %s readability-identifier-naming %t/without-modules -- \
// RUN: -config="CheckOptions: [{ \
// RUN: key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }]" \
// RUN: -header-filter=.* \
// RUN: -- -I %t/
//
// Run clang-tidy on a file with modular includes:
//
// RUN: rm -rf %t
// RUN: mkdir %t
// RUN: cp %S/Inputs/expand-modular-headers-ppcallbacks/* %t/
// RUN: %check_clang_tidy %s readability-identifier-naming %t/with-modules -- \
// RUN: %check_clang_tidy -std=c++11 %s readability-identifier-naming %t/with-modules -- \
// RUN: -config="CheckOptions: [{ \
// RUN: key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }]" \
// RUN: -header-filter=.* \
// RUN: -- -x c++ -std=c++11 -I%t/ \
// RUN: -- -I %t/ \
// RUN: -fmodules -fimplicit-modules -fno-implicit-module-maps \
// RUN: -fmodule-map-file=%t/module.modulemap \
// RUN: -fmodules-cache-path=%t/module-cache/
//
// RUN: rm -rf %t
// RUN: mkdir %t
// RUN: cp %S/Inputs/expand-modular-headers-ppcallbacks/* %t/
// RUN: %check_clang_tidy -std=c++17 %s readability-identifier-naming %t/with-modules -- \
// RUN: -config="CheckOptions: [{ \
// RUN: key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }]" \
// RUN: -header-filter=.* \
// RUN: -- -I %t/ \
// RUN: -fmodules -fimplicit-modules -fno-implicit-module-maps \
// RUN: -fmodule-map-file=%t/module.modulemap \
// RUN: -fmodules-cache-path=%t/module-cache/
// FIXME: Make the test work in all language modes.
#include "c.h"
// CHECK-MESSAGES: a.h:1:9: warning: invalid case style for macro definition 'a' [readability-identifier-naming]

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: ''}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: ''}]}" \
// RUN: -- -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
#include <cstdlib.h>
// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include cstdlib.h not allowed

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'cstd*'}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'cstd*'}]}" \
// RUN: -- -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
#include <cstdlib.h>
#include <cstdarg.h>

View File

@ -1,12 +1,13 @@
// RUN: rm -rf %T/Headers
// RUN: mkdir %T/Headers
// RUN: cp -r %S/Inputs/fuchsia-restrict-system-includes %T/Headers/fuchsia-restrict-system-includes
// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'transitive.h,s.h'}]}" \
// RUN: %check_clang_tidy -std=c++11 %s fuchsia-restrict-system-includes %t \
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'transitive.h,s.h'}]}" \
// RUN: -system-headers -header-filter=.* \
// RUN: -- -std=c++11 -I %T/Headers/fuchsia-restrict-system-includes -isystem %T/Headers/fuchsia-restrict-system-includes/system
// RUN: -- -I %T/Headers/fuchsia-restrict-system-includes -isystem %T/Headers/fuchsia-restrict-system-includes/system
// RUN: FileCheck -input-file=%T/Headers/fuchsia-restrict-system-includes/transitive2.h %s -check-prefix=CHECK-FIXES
// RUN: rm -rf %T/Headers
// FIXME: Make the test work in all language modes.
// transitive.h includes <r.h> and <t.h>
#include <transitive.h>

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 's.h'}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 's.h'}]}" \
// RUN: -- -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
#include "a.h"

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s google-readability-casting %t
// RUN: %check_clang_tidy -std=c++11,c++14 %s google-readability-casting %t
// FIXME: Fix the checker to work in C++17 mode.
bool g() { return false; }

View File

@ -3,7 +3,7 @@
// RUN: {key: google-runtime-int.UnsignedTypePrefix, value: "std::uint"}, \
// RUN: {key: google-runtime-int.SignedTypePrefix, value: "std::int"}, \
// RUN: {key: google-runtime-int.TypeSuffix, value: "_t"}, \
// RUN: ]}' -- -std=c++11
// RUN: ]}'
long a();
// CHECK-MESSAGES: [[@LINE-1]]:1: warning: consider replacing 'long' with 'std::int{{..}}_t'

View File

@ -1,8 +1,7 @@
// RUN: %check_clang_tidy %s google-runtime-references %t -- \
// RUN: -extra-arg="-std=c++11" \
// RUN: -config="{CheckOptions: \
// RUN: [{key: google-runtime-references.WhiteListTypes, \
// RUN: value: 'whitelist::A; whitelist::B'}]}" --
// RUN: value: 'whitelist::A; whitelist::B'}]}"
int a;
int &b = a;

View File

@ -1,4 +1,5 @@
// RUN: clang-tidy %s -checks='-*,hicpp-signed-bitwise' -- -std=c++11
// FIXME: Make the test work in all language modes.
#include "hicpp-signed-bitwise-standard-types.h"

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s hicpp-signed-bitwise %t -- -- -std=c++11 --target=x86_64-linux
// RUN: %check_clang_tidy %s hicpp-signed-bitwise %t -- -- --target=x86_64-linux
// These could cause false positives and should not be considered.
struct StreamClass {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-new-delete-overloads %t -- -- -std=c++14 -fsized-deallocation
// RUN: %check_clang_tidy %s misc-new-delete-overloads %t -- -- -fsized-deallocation
typedef decltype(sizeof(int)) size_t;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-new-delete-overloads %t -- -- -std=c++14
// RUN: %check_clang_tidy %s misc-new-delete-overloads %t
typedef decltype(sizeof(int)) size_t;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-redundant-expression %t -- -- -std=c++11
// RUN: %check_clang_tidy %s misc-redundant-expression %t
typedef __INT64_TYPE__ I64;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-throw-by-value-catch-by-reference %t -- -- -std=c++11 -fcxx-exceptions
// RUN: %check_clang_tidy %s misc-throw-by-value-catch-by-reference %t -- -- -fcxx-exceptions
class logic_error {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-unconventional-assign-operator %t -- -- -std=c++17 -fno-delayed-template-parsing
// RUN: %check_clang_tidy -std=c++14-or-later %s misc-unconventional-assign-operator %t -- -- -fno-delayed-template-parsing
struct BadModifier {
BadModifier& operator=(const BadModifier&) const;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-unconventional-assign-operator %t -- -- -std=c++11 -isystem %S/Inputs/Headers -fno-delayed-template-parsing
// RUN: %check_clang_tidy %s misc-unconventional-assign-operator %t -- -- -isystem %S/Inputs/Headers -fno-delayed-template-parsing
namespace std {
template <typename T>

View File

@ -1,7 +1,8 @@
// RUN: echo "static void staticFunctionHeader(int i) {;}" > %T/header.h
// RUN: echo "static void staticFunctionHeader(int /*i*/) {;}" > %T/header-fixed.h
// RUN: %check_clang_tidy %s misc-unused-parameters %t -- -header-filter='.*' -- -std=c++11 -fno-delayed-template-parsing
// RUN: %check_clang_tidy -std=c++11 %s misc-unused-parameters %t -- -header-filter='.*' -- -fno-delayed-template-parsing
// RUN: diff %T/header.h %T/header-fixed.h
// FIXME: Make the test work in all language modes.
#include "header.h"
// CHECK-MESSAGES: header.h:1:38: warning

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-avoid-bind %t -- -- -std=c++14
// RUN: %check_clang_tidy -std=c++14-or-later %s modernize-avoid-bind %t
namespace std {
inline namespace impl {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-concat-nested-namespaces %t -- -- -std=c++17
// RUN: %check_clang_tidy -std=c++17-or-later %s modernize-concat-nested-namespaces %t
namespace n1 {}

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-deprecated-headers %t -- -extra-arg-before=-isystem%S/Inputs/modernize-deprecated-headers -- -std=c++03 -v
// RUN: %check_clang_tidy -std=c++98 %s modernize-deprecated-headers %t -- -extra-arg-before=-isystem%S/Inputs/modernize-deprecated-headers
#include <assert.h>
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers]

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-deprecated-headers %t -- -extra-arg-before=-isystem%S/Inputs/modernize-deprecated-headers -- -std=c++11 -v
// RUN: %check_clang_tidy -std=c++11-or-later %s modernize-deprecated-headers %t -- -extra-arg-before=-isystem%S/Inputs/modernize-deprecated-headers
#include <assert.h>
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: inclusion of deprecated C++ header 'assert.h'; consider using 'cassert' instead [modernize-deprecated-headers]

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -std=c++11 -I %S/Inputs/modernize-loop-convert
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -I %S/Inputs/modernize-loop-convert
#include "structures.h"

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-loop-convert.NamingStyle, value: 'camelBack'}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/modernize-loop-convert
// RUN: -- -I %S/Inputs/modernize-loop-convert
#include "structures.h"

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -std=c++11
// RUN: %check_clang_tidy %s modernize-loop-convert %t
struct Str {
Str() = default;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -std=c++11 -I %S/Inputs/modernize-loop-convert
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -I %S/Inputs/modernize-loop-convert
#include "structures.h"

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-loop-convert.NamingStyle, value: 'lower_case'}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/modernize-loop-convert
// RUN: -- -I %S/Inputs/modernize-loop-convert
#include "structures.h"

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -std=c++11 -I %S/Inputs/modernize-loop-convert
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- -- -I %S/Inputs/modernize-loop-convert
#include "structures.h"

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-loop-convert %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-loop-convert.NamingStyle, value: 'UPPER_CASE'}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/modernize-loop-convert
// RUN: -- -I %S/Inputs/modernize-loop-convert
#include "structures.h"

View File

@ -5,7 +5,7 @@
// RUN: {key: modernize-make-shared.MakeSmartPtrFunctionHeader, \
// RUN: value: 'make_shared_util.h'} \
// RUN: ]}" \
// RUN: -- -std=c++11 -I%S/Inputs/modernize-smart-ptr
// RUN: -- -I %S/Inputs/modernize-smart-ptr
#include "shared_ptr.h"
// CHECK-FIXES: #include "make_shared_util.h"

View File

@ -1,5 +1,4 @@
// RUN: %check_clang_tidy %s modernize-make-shared %t -- -- -std=c++11 \
// RUN: -I%S/Inputs/modernize-smart-ptr
// RUN: %check_clang_tidy %s modernize-make-shared %t -- -- -I %S/Inputs/modernize-smart-ptr
#include "shared_ptr.h"
// CHECK-FIXES: #include <memory>

View File

@ -1,5 +1,4 @@
// RUN: %check_clang_tidy %s modernize-make-unique %t -- -- -std=c++11 \
// RUN: -I%S/Inputs/modernize-smart-ptr
// RUN: %check_clang_tidy -std=c++11 %s modernize-make-unique %t -- -- -I %S/Inputs/modernize-smart-ptr
#include "unique_ptr.h"
// CHECK-FIXES: #include "unique_ptr.h"

View File

@ -1,5 +1,4 @@
// RUN: %check_clang_tidy %s modernize-make-unique %t -- -- -std=c++14 \
// RUN: -I%S/Inputs/modernize-smart-ptr
// RUN: %check_clang_tidy -std=c++14-or-later %s modernize-make-unique %t -- -- -I %S/Inputs/modernize-smart-ptr
#include "unique_ptr.h"
// CHECK-FIXES: #include <memory>

View File

@ -5,7 +5,7 @@
// RUN: {key: modernize-make-unique.MakeSmartPtrFunctionHeader, \
// RUN: value: 'make_unique_util.h'} \
// RUN: ]}" \
// RUN: -- -std=c++11 -I%S/Inputs/modernize-smart-ptr
// RUN: -- -I %S/Inputs/modernize-smart-ptr
#include "unique_ptr.h"
// CHECK-FIXES: #include "make_unique_util.h"

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-make-unique %t -- \
// RUN: %check_clang_tidy -std=c++14-or-later %s modernize-make-unique %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-make-unique.IgnoreMacros, value: 0}]}" \
// RUN: -- -std=c++14 -I%S/Inputs/modernize-smart-ptr
// RUN: -- -I %S/Inputs/modernize-smart-ptr
#include "unique_ptr.h"

View File

@ -1,5 +1,5 @@
// RUN: %check_clang_tidy %s modernize-make-unique %t -- -- -std=c++14 \
// RUN: -I%S/Inputs/modernize-smart-ptr
// RUN: %check_clang_tidy -std=c++14 %s modernize-make-unique %t -- -- -I %S/Inputs/modernize-smart-ptr
// FIXME: Fix the checker to work in C++17 mode.
#include "unique_ptr.h"
#include "initializer_list.h"

View File

@ -1,6 +1,7 @@
// RUN: cp %S/Inputs/modernize-pass-by-value/header.h %T/pass-by-value-header.h
// RUN: clang-tidy %s -checks='-*,modernize-pass-by-value' -header-filter='.*' -fix -- -std=c++11 -I %T | FileCheck %s -check-prefix=CHECK-MESSAGES -implicit-check-not="{{warning|error}}:"
// RUN: FileCheck -input-file=%T/pass-by-value-header.h %s -check-prefix=CHECK-FIXES
// FIXME: Make the test work in all language modes.
#include "pass-by-value-header.h"
// CHECK-MESSAGES: :8:5: warning: pass by value and use std::move [modernize-pass-by-value]

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -std=c++11 -isystem %S/Inputs/Headers
// RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -isystem %S/Inputs/Headers
// CHECK-FIXES: #include <utility>

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -std=c++11 -fno-delayed-template-parsing
// RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -fno-delayed-template-parsing
namespace {
// POD types are trivially move constructible.

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-raw-string-literal %t -- -config='{CheckOptions: [{key: "modernize-raw-string-literal.DelimiterStem", value: "str"}, {key: modernize-raw-string-literal.ReplaceShorterLiterals, value: 1}]}' -- -std=c++11
// RUN: %check_clang_tidy %s modernize-raw-string-literal %t -- -config='{CheckOptions: [{key: "modernize-raw-string-literal.DelimiterStem", value: "str"}, {key: modernize-raw-string-literal.ReplaceShorterLiterals, value: 1}]}'
char const *const ContainsSentinel{"who\\ops)\""};
// CHECK-MESSAGES: :[[@LINE-1]]:36: warning: {{.*}} can be written as a raw string literal

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s modernize-raw-string-literal %t -- -config="{CheckOptions: [{key: modernize-raw-string-literal.ReplaceShorterLiterals, value: 1}]}" -- -std=c++11
// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s modernize-raw-string-literal %t -- -config="{CheckOptions: [{key: modernize-raw-string-literal.ReplaceShorterLiterals, value: 1}]}"
// FIXME: Fix the checker to work in C++2a mode.
char const *const BackSlash("goink\\frob");
// CHECK-MESSAGES: :[[@LINE-1]]:29: warning: escaped string literal can be written as a raw string literal [modernize-raw-string-literal]

View File

@ -1,5 +1,4 @@
// RUN: %check_clang_tidy %s modernize-replace-auto-ptr %t -- -- \
// RUN: -std=c++11 -I %S/Inputs/modernize-replace-auto-ptr
// RUN: %check_clang_tidy %s modernize-replace-auto-ptr %t -- -- -I %S/Inputs/modernize-replace-auto-ptr
// CHECK-FIXES: #include <utility>

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-replace-random-shuffle %t -- -- -std=c++11
// RUN: %check_clang_tidy %s modernize-replace-random-shuffle %t
//CHECK-FIXES: #include <random>

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s modernize-return-braced-init-list %t -- -- -std=c++14
// RUN: %check_clang_tidy -std=c++14 %s modernize-return-braced-init-list %t
// FIXME: Fix the checker to work in C++17 mode.
namespace std {
typedef decltype(sizeof(int)) size_t;

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-unary-static-assert %t -- -- -std=c++1z
// RUN: %check_clang_tidy -std=c++17-or-later %s modernize-unary-static-assert %t
#define FOO static_assert(sizeof(a) <= 15, "");
#define MSG ""

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: '1'} , {key: modernize-use-auto.MinTypeNameLength, value: '0'}]}" \
// RUN: -- -std=c++11 -frtti
// RUN: -- -frtti
struct A {
virtual ~A() {}

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-auto.MinTypeNameLength, value: '0'}]}" \
// RUN: -- -std=c++11 -I %S/Inputs/modernize-use-auto -frtti
// RUN: -- -I %S/Inputs/modernize-use-auto -frtti
struct A {
virtual ~A() {}

View File

@ -1,5 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-auto %t -- -- \
// RUN: -std=c++11 -I %S/Inputs/modernize-use-auto
// RUN: %check_clang_tidy -std=c++11,c++14 %s modernize-use-auto %t -- -- -I %S/Inputs/modernize-use-auto
// FIXME: Fix the checker to work in C++17 mode.
#include "containers.h"

View File

@ -1,7 +1,7 @@
// RUN: %check_clang_tidy -check-suffix=0-0 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 0}, {key: modernize-use-auto.MinTypeNameLength, value: 0}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=0-8 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 0}, {key: modernize-use-auto.MinTypeNameLength, value: 8}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=1-0 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 1}, {key: modernize-use-auto.MinTypeNameLength, value: 0}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=1-8 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 1}, {key: modernize-use-auto.MinTypeNameLength, value: 8}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=0-0 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 0}, {key: modernize-use-auto.MinTypeNameLength, value: 0}]}" -- -frtti
// RUN: %check_clang_tidy -check-suffix=0-8 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 0}, {key: modernize-use-auto.MinTypeNameLength, value: 8}]}" -- -frtti
// RUN: %check_clang_tidy -check-suffix=1-0 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 1}, {key: modernize-use-auto.MinTypeNameLength, value: 0}]}" -- -frtti
// RUN: %check_clang_tidy -check-suffix=1-8 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 1}, {key: modernize-use-auto.MinTypeNameLength, value: 8}]}" -- -frtti
template <class T> extern T foo();
template <class T> struct P { explicit P(T t) : t_(t) {} T t_;};

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: '1'}, {key: modernize-use-auto.MinTypeNameLength, value: '0'}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: '1'}, {key: modernize-use-auto.MinTypeNameLength, value: '0'}]}"
class MyType {};

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-use-auto %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-auto.MinTypeNameLength, value: '0'}]}" \
// RUN: -- -std=c++11 -frtti
// RUN: -- -frtti
class MyType {};

View File

@ -1,8 +1,7 @@
// RUN: %check_clang_tidy %s modernize-use-bool-literals %t -- \
// RUN: -config="{CheckOptions: \
// RUN: [{key: modernize-use-bool-literals.IgnoreMacros, \
// RUN: value: 1}]}" \
// RUN: -- -std=c++11
// RUN: value: 1}]}"
bool IntToTrue = 1;
// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: converting integer literal to bool, use bool literal instead [modernize-use-bool-literals]

View File

@ -1,8 +1,7 @@
// RUN: %check_clang_tidy %s modernize-use-bool-literals %t -- \
// RUN: -config="{CheckOptions: \
// RUN: [{key: modernize-use-bool-literals.IgnoreMacros, \
// RUN: value: 0}]}" \
// RUN: -- -std=c++11
// RUN: value: 0}]}"
bool IntToTrue = 1;
// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: converting integer literal to bool, use bool literal instead [modernize-use-bool-literals]

View File

@ -1,5 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-default-member-init %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: 1}]}" -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: 1}]}"
struct S {
};

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-use-default-member-init %t -- -- -std=c++2a
// RUN: %check_clang_tidy -std=c++2a-or-later %s modernize-use-default-member-init %t
struct PositiveBitField
{

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-default-member-init %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.IgnoreMacros, value: 0}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.IgnoreMacros, value: 0}]}"
#define MACRO() \
struct S { \

View File

@ -1,4 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-default-member-init %t -- -- -std=c++11
// RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s modernize-use-default-member-init %t
// FIXME: Fix the checker to work in C++2a mode.
struct S {
};

View File

@ -2,7 +2,7 @@
// RUN: -config="{CheckOptions: \
// RUN: [{key: modernize-use-emplace.IgnoreImplicitConstructors, \
// RUN: value: 1}] \
// RUN: }" -- -std=c++11
// RUN: }"
namespace std {
template <typename>

View File

@ -6,7 +6,7 @@
// RUN: value: '::std::pair; std::tuple; ::test::Single'}, \
// RUN: {key: modernize-use-emplace.TupleMakeFunctions, \
// RUN: value: '::std::make_pair; ::std::make_tuple; ::test::MakeSingle'}] \
// RUN: }" -- -std=c++11
// RUN: }"
namespace std {
template <typename>

View File

@ -1,6 +1,6 @@
// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-equals-default.IgnoreMacros, value: 0}]}" \
// RUN: -- -std=c++11 -fno-delayed-template-parsing -fexceptions
// RUN: -- -fno-delayed-template-parsing -fexceptions
// Out of line definition.
struct OL {

View File

@ -1,6 +1,7 @@
// RUN: clang-tidy %s -checks=-*,modernize-use-equals-default -- -std=c++11 -fdelayed-template-parsing -fexceptions | count 0
// Note: this test expects no diagnostics, but FileCheck cannot handle that,
// hence the use of | count 0.
// FIXME: Make the test work in all language modes.
template <typename Ty>
struct S {

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-equals-default.IgnoreMacros, value: 0}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-equals-default.IgnoreMacros, value: 0}]}"
#define STRUCT_WITH_DEFAULT(_base, _type) \
struct _type { \

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- -- -std=c++11 -fno-delayed-template-parsing -fexceptions
// RUN: %check_clang_tidy %s modernize-use-equals-default %t -- -- -fno-delayed-template-parsing -fexceptions
// Out of line definition.
class OL {

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-equals-delete %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-equals-delete.IgnoreMacros, value: 0}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-equals-delete.IgnoreMacros, value: 0}]}"
#define MACRO(type) void operator=(type const &)
class C {

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-nodiscard %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: '[[clang::warn_unused_result]]'}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: '[[clang::warn_unused_result]]'}]}"
class Foo
{

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-nodiscard %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: '__attribute__((warn_unused_result))'}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: '__attribute__((warn_unused_result))'}]}"
class Foo
{

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-nodiscard %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: '[[gcc::warn_unused_result]]'}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: '[[gcc::warn_unused_result]]'}]}"
class Foo
{

View File

@ -1,5 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-nodiscard %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: 'CUSTOM_NO_DISCARD'}]}" -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-nodiscard.ReplacementString, value: 'CUSTOM_NO_DISCARD'}]}"
// As if the macro was not defined.
// #define CUSTOM_NO_DISCARD __attribute_((warn_unused_result))

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-use-nodiscard %t -- -- -std=c++17
// RUN: %check_clang_tidy -std=c++17-or-later %s modernize-use-nodiscard %t
class Foo
{

View File

@ -1,6 +1,8 @@
// RUN: %check_clang_tidy %s modernize-use-noexcept %t -- \
// RUN: %check_clang_tidy -std=c++11,c++14 %s modernize-use-noexcept %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-noexcept.ReplacementString, value: 'NOEXCEPT'}]}" \
// RUN: -- -std=c++11 -fexceptions
// RUN: -- -fexceptions
// This test is not run in C++17 or later because dynamic exception
// specifications were removed in C++17.
// Example definition of NOEXCEPT -- simplified test to see if noexcept is supported.
#if (__has_feature(cxx_noexcept))

View File

@ -1,6 +1,8 @@
// RUN: %check_clang_tidy %s modernize-use-noexcept %t -- \
// RUN: %check_clang_tidy -std=c++11,c++14 %s modernize-use-noexcept %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-noexcept.UseNoexceptFalse, value: 0}]}" \
// RUN: -- -std=c++11 -fexceptions
// RUN: -- -fexceptions
// This test is not run in C++17 or later because dynamic exception
// specifications were removed in C++17.
class A {};
class B {};

View File

@ -1,5 +1,6 @@
// RUN: %check_clang_tidy %s modernize-use-noexcept %t -- \
// RUN: -- -std=c++11 -fexceptions
// RUN: %check_clang_tidy -std=c++11,c++14 %s modernize-use-noexcept %t -- -- -fexceptions
// This test is not run in C++17 or later because dynamic exception
// specifications were removed in C++17.
class A {};
class B {};

View File

@ -1,8 +1,9 @@
// RUN: %check_clang_tidy %s modernize-use-nullptr %t -- -- \
// RUN: -std=c++98 -Wno-non-literal-null-conversion
// RUN: %check_clang_tidy -std=c++98 %s modernize-use-nullptr %t -- -- -Wno-non-literal-null-conversion
//
// Some parts of the test (e.g. assignment of `const int` to `int *`) fail in
// C++11, so we need to run the test in C++98 mode.
//
// FIXME: Make the test work in all language modes.
const unsigned int g_null = 0;
#define NULL 0

View File

@ -1,6 +1,5 @@
// RUN: %check_clang_tidy %s modernize-use-nullptr %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-nullptr.NullMacros, value: 'MY_NULL,NULL'}]}" \
// RUN: -- -std=c++11
// RUN: -config="{CheckOptions: [{key: modernize-use-nullptr.NullMacros, value: 'MY_NULL,NULL'}]}"
#define NULL 0

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s modernize-use-override %t -- -- -std=c++98
// RUN: %check_clang_tidy -std=c++98 %s modernize-use-override %t
struct Base {
virtual ~Base() {}

Some files were not shown because too many files have changed in this diff Show More