| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # The checks defined here will be run and will display by default as warnings. |
| Checks: > |
| -*, cppcoreguidelines-c-copy-assignment-signature, |
| cppcoreguidelines-interfaces-global-init, cppcoreguidelines-no-malloc, |
| cppcoreguidelines-pro-bounds-constant-array-index, cppcoreguidelines-pro-type-const-cast, |
| cppcoreguidelines-pro-type-cstyle-cast, cppcoreguidelines-pro-type-member-init, |
| cppcoreguidelines-pro-type-static-cast-downcast, cppcoreguidelines-pro-type-union-access, |
| cppcoreguidelines-pro-type-vararg, cppcoreguidelines-slicing, |
| cppcoreguidelines-special-member-functions, clang-analyzer-security.FloatLoopCounter, |
| clang-analyzer-security.insecureAPI.*, clang-analyzer-core.CallAndMessage, |
| clang-analyzer-core.DivideZero, clang-analyzer-core.DynamicTypePropagation, |
| clang-analyzer-core.NonNullParamChecker, clang-analyzer-core.NullDereference, |
| clang-analyzer-core.StackAddressEscape, clang-analyzer-core.UndefinedBinaryOperatorResult, |
| clang-analyzer-core.VLASize, clang-analyzer-core.builtin.BuiltinFunctions, |
| clang-analyzer-core.builtin.NoReturnFunctions, clang-analyzer-core.uninitialized.ArraySubscript, |
| clang-analyzer-core.uninitialized.Assign, clang-analyzer-core.uninitialized.Branch, |
| clang-analyzer-core.uninitialized.CapturedBlockVariable, |
| clang-analyzer-core.uninitialized.UndefReturn, clang-analyzer-cplusplus.NewDelete, |
| clang-analyzer-cplusplus.NewDeleteLeaks, clang-analyzer-cplusplus.SelfAssignment, |
| clang-analyzer-deadcode.DeadStores, modernize-avoid-bind, modernize-deprecated-headers, |
| modernize-loop-convert, modernize-make-shared, modernize-pass-by-value, |
| modernize-raw-string-literal, modernize-redundant-void-arg, modernize-replace-auto-ptr, |
| modernize-replace-random-shuffle, modernize-return-braced-init-list, modernize-shrink-to-fit, |
| modernize-unary-static-assert, modernize-use-bool-literals, modernize-use-default-member-init, |
| modernize-use-emplace, modernize-use-equals-default, modernize-use-equals-delete, |
| modernize-use-noexcept, modernize-use-nullptr, modernize-use-override, |
| modernize-use-transparent-functors, modernize-use-using, performance-* |
| |
| # cppcoreguidelines checks not enabled: |
| # cppcoreguidelines-pro-bounds-pointer-arithmetic |
| # cppcoreguidelines-pro-bounds-array-to-pointer-decay |
| # cppcoreguidelines-pro-type-reinterpret-cast |
| |
| # modernize checks not enabled: |
| # modernize-use-auto |
| # modernize-make-unique (C++14 and newer only) |
| |
| # In order to trigger an error, you must have a rule defined both in checks and in this section. |
| WarningsAsErrors: > |
| cppcoreguidelines-no-malloc, modernize-use-nullptr, performance-unnecessary-copy-initialization, |
| modernize-use-emplace, performance-move-const-arg |
| |
| # Todo: define a better regex match that includes most project headers, but excludes third party |
| # code. |
| HeaderFilterRegex: '^src/.*' |