diff --git a/.clang-tidy b/.clang-tidy index aa49c40e2cf..a105dedfe2b 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -3,6 +3,8 @@ Checks: > -*, bugprone-*, -bugprone-branch-clone, + -bugprone-easily-swappable-parameters, + -bugprone-implicit-widening-of-multiplication-result, -bugprone-macro-parentheses, -bugprone-narrowing-conversions, clang-analyzer-*, @@ -22,6 +24,7 @@ Checks: > -cppcoreguidelines-narrowing-conversions, -cppcoreguidelines-non-private-member-variables-in-classes, -cppcoreguidelines-owning-memory, + -cppcoreguidelines-prefer-member-initializer, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-constant-array-index, -cppcoreguidelines-pro-bounds-pointer-arithmetic, @@ -36,6 +39,7 @@ Checks: > modernize-*, -modernize-avoid-c-arrays, -modernize-make-shared, + -modernize-return-braced-init-list, -modernize-use-trailing-return-type, -modernize-use-using, performance-*, @@ -50,6 +54,7 @@ Checks: > -readability-magic-numbers, -readability-named-parameter, -readability-simplify-boolean-expr, + -readability-suspicious-call-argument, -readability-use-anyofallof, HeaderFilterRegex: '.*' FormatStyle: file diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index 0c55dd7a2ef..d07720a207a 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -5,13 +5,13 @@ on: workflow_dispatch: jobs: check: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt-get update - sudo apt-get install -y clang-tidy-12 libboost-dev + sudo apt-get install -y clang-tidy-14 libboost-dev - name: Check run: | cmake --preset linux-ci-build-with-clang-tidy diff --git a/CMakePresets.json b/CMakePresets.json index f436a7439a7..ab24fc879b3 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -91,7 +91,7 @@ "BOOST_ROOT": "/usr", "CMAKE_BUILD_TYPE": "Debug", "CMAKE_CXX_COMPILER": "g++", - "QL_CLANG_TIDY": "clang-tidy-12", + "QL_CLANG_TIDY": "clang-tidy-14", "QL_CLANG_TIDY_OPTIONS": "-quiet;-fix", "QL_USE_CLANG_TIDY": "ON", "QL_USE_STD_CLASSES": "ON" diff --git a/ql/experimental/barrieroption/discretizeddoublebarrieroption.cpp b/ql/experimental/barrieroption/discretizeddoublebarrieroption.cpp index 85b869dfb60..082fafeb424 100644 --- a/ql/experimental/barrieroption/discretizeddoublebarrieroption.cpp +++ b/ql/experimental/barrieroption/discretizeddoublebarrieroption.cpp @@ -27,7 +27,7 @@ namespace QuantLib { const StochasticProcess& process, const TimeGrid& grid) : arguments_(args), vanilla_(arguments_, process, grid) { - QL_REQUIRE(args.exercise->dates().size(), "specify at least one stopping date"); + QL_REQUIRE(!args.exercise->dates().empty(), "specify at least one stopping date"); stoppingTimes_.resize(args.exercise->dates().size()); for (Size i=0; i& yts) const = 0; virtual Real diff --git a/ql/pricingengines/barrier/discretizedbarrieroption.cpp b/ql/pricingengines/barrier/discretizedbarrieroption.cpp index cbb7fee87de..2602871cfc4 100644 --- a/ql/pricingengines/barrier/discretizedbarrieroption.cpp +++ b/ql/pricingengines/barrier/discretizedbarrieroption.cpp @@ -27,7 +27,7 @@ namespace QuantLib { const StochasticProcess& process, const TimeGrid& grid) : arguments_(args), vanilla_(arguments_, process, grid) { - QL_REQUIRE(args.exercise->dates().size(), "specify at least one stopping date"); + QL_REQUIRE(!args.exercise->dates().empty(), "specify at least one stopping date"); stoppingTimes_.resize(args.exercise->dates().size()); for (Size i=0; i> calibrationBasket(const ext::shared_ptr& exercise, const ext::shared_ptr& standardSwapBase, @@ -81,8 +83,6 @@ namespace QuantLib { : onefactormodel_(std::move(model)), oas_(std::move(oas)), discountCurve_(std::move(discountCurve)) {} - virtual ~BasketGeneratingEngine() = default; - virtual Real underlyingNpv(const Date& expiry, Real y) const = 0; virtual Swap::Type underlyingType() const = 0;