# See: http://clang.llvm.org/extra/clang-tidy/
#  clang-tidy-4.0 src/pvt_engine/*.cc -- -std=c++14 -Irefactor/common/ -Irefactor/common/libswiftnav -Iinclude/ -Iinclude/libswiftnav/ -isystem -third_party/ -isystem./libfec/include/ -Ithird_party/Optional -isystem./third_party/json/src/ -isystem./third_party/eigen/
#
# TODO (mookerji: Disabled are clang-analyzer-alpha.*, since these seem to check
# non-project code. Fix when resolved in LLVM.
#
# TODO (nsirola: Disabled a bunch of checks on updating to clang-4.0, to be 
#       re-enabled and checked individually:
#       -modernize-deprecated-headers (new in 3.9)
#       -modernize-use-default-member-init (new in 4.0)
#       -modernize-redundant-void-arg (since 3.8, for some reason did not warn before)
#       -modernize-use-using (new in 3.9)
#       -modernize-use-equals-delete (new in 4.0)
#       -modernize-use-equals-default (new in 4.0)
#       -modernize-use-bool-literals (new in 3.9)
#       -modernize-use-auto (extended in 4.0)
#       -modernize-use-emplace (new in 3.9)
#       -cppcoreguidelines-special-member-functions (new in 4.0)
#       -cppcoreguidelines-pro-type-member-init (new in 3.9)
#       -readability-avoid-const-params-in-decls (new in 3.9)
#       -readability-non-const-parameter (new in 4.0)
#       -readability-redundant-member-init (new in 4.0)
#       -readability-redundant-declaration (new in 4.0)
#       -cert-err34-c (new in 3.9)
#       -cert-err58-cpp (since 3.8, for some reason did not warn before)
#       -performance-unnecessary-value-param (new in 3.9)
#       -google-runtime-references (new in 4.0)
#       -clang-analyzer-optin.cplusplus.VirtualCall (new in 4.0)
#       -clang-analyzer-core.CallAndMessage (not mentioned in release notes)
#       -clang-analyzer-core.UndefinedBinaryOperatorResult (not mentioned in release notes)
#       -clang-analyzer-core.uninitialized.Assign (not mentioned in release notes)
#
# TODO jbangelo: Disabled several more check on updating to clang-6.0, really should re-enable and fix
#       -cppcoreguidelines-owning-memory
#       -cert-dcl21-cpp
#       -modernize-return-braced-init-list

Checks: "-*,cert-*,google-*,misc-*,readability-*,clang-analyzer-*,modernize-*,performance-*,-clang-analyzer-alpha*,cppcoreguidelines-*,cert-*,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-vararg,-modernize-pass-by-value,-modernize-deprecated-headers,-modernize-use-default-member-init,-modernize-redundant-void-arg,-modernize-use-using,-modernize-use-equals-delete,-modernize-use-equals-default,-modernize-use-bool-literals,-modernize-use-auto,-modernize-use-emplace,-cppcoreguidelines-special-member-functions,-cppcoreguidelines-pro-type-member-init,-readability-avoid-const-params-in-decls,-readability-non-const-parameter,-readability-redundant-member-init,-readability-redundant-declaration,-cert-err34-c,-cert-err58-cpp,-performance-unnecessary-value-param,-google-runtime-references,-clang-analyzer-optin.cplusplus.VirtualCall,-clang-analyzer-core.CallAndMessage,-clang-analyzer-core.UndefinedBinaryOperatorResult,-clang-analyzer-core.uninitialized.Assign,-cppcoreguidelines-owning-memory,-clang-analyzer-core.uninitialized.UndefReturn,-cert-dcl21-cpp,-modernize-return-braced-init-list,-cert-dcl03-c,-misc-static-assert"
HeaderFilterRegex: '.*'
AnalyzeTemporaryDtors: true
...

