Update clang-tidy

Fix a bunch of minor issues, ignore others.  We use a lot of global
variables.  Enabling a check will hopefully make sure we don't add more.

Change-Id: Ie76053d4afc95a5372b70b2fb768be464468cec0
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/.clang-tidy b/.clang-tidy
index 07f1356..091ba5c 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -3,17 +3,24 @@
 boost-use-to-string,
 bugprone-argument-comment,
 bugprone-assert-side-effect,
+bugprone-assignment-in-if-condition,
 bugprone-bad-signal-to-kill-thread,
 bugprone-bool-pointer-implicit-conversion,
 bugprone-branch-clone,
+bugprone-casting-through-void,
+bugprone-chained-comparison,
+bugprone-compare-pointer-to-member-virtual-function,
 bugprone-copy-constructor-init,
 bugprone-dangling-handle,
 bugprone-dynamic-static-initializers,
+bugprone-empty-catch,
 bugprone-fold-init-type,
 bugprone-forward-declaration-namespace,
 bugprone-forwarding-reference-overload,
 bugprone-implicit-widening-of-multiplication-result,
 bugprone-inaccurate-erase,
+bugprone-inc-dec-in-conditions,
+bugprone-incorrect-enable-if,
 bugprone-incorrect-roundings,
 bugprone-infinite-loop,
 bugprone-integer-division,
@@ -24,35 +31,49 @@
 bugprone-misplaced-pointer-arithmetic-in-alloc,
 bugprone-misplaced-widening-cast,
 bugprone-move-forwarding-reference,
+bugprone-multi-level-implicit-pointer-conversion,
+bugprone-multiple-new-in-one-expression,
 bugprone-multiple-statement-macro,
 bugprone-no-escape,
+bugprone-non-zero-enum-to-bool-conversion,
 bugprone-not-null-terminated-result,
+bugprone-optional-value-conversion,
 bugprone-parent-virtual-call,
 bugprone-posix-return,
 bugprone-redundant-branch-condition,
 bugprone-reserved-identifier,
+bugprone-shared-ptr-array-mismatch,
 bugprone-signal-handler,
 bugprone-signed-char-misuse,
 bugprone-sizeof-container,
 bugprone-sizeof-expression,
 bugprone-spuriously-wake-up-functions,
+bugprone-standalone-empty,
 bugprone-string-constructor,
 bugprone-string-integer-assignment,
 bugprone-string-literal-with-embedded-nul,
+bugprone-stringview-nullptr,
 bugprone-suspicious-enum-usage,
 bugprone-suspicious-include,
+bugprone-suspicious-memory-comparison,
 bugprone-suspicious-memset-usage,
 bugprone-suspicious-missing-comma,
+bugprone-suspicious-realloc-usage,
 bugprone-suspicious-semicolon,
 bugprone-suspicious-string-compare,
 bugprone-swapped-arguments,
+bugprone-switch-missing-default-case,
 bugprone-terminating-continue,
 bugprone-throw-keyword-missing,
 bugprone-too-small-loop-variable,
+bugprone-unchecked-optional-access,
 bugprone-undefined-memory-manipulation,
 bugprone-undelegated-constructor,
 bugprone-unhandled-exception-at-new,
 bugprone-unhandled-self-assignment,
+bugprone-unique-ptr-array-mismatch,
+bugprone-unsafe-functions,
+bugprone-unused-local-non-trivial-variable,
 bugprone-unused-raii,
 bugprone-unused-return-value,
 bugprone-use-after-move,
@@ -89,8 +110,10 @@
 cert-pos47-c,
 cert-sig30-c,
 cert-str34-c,
+clang-analyzer-apiModeling.Errno,
 clang-analyzer-apiModeling.StdCLibraryFunctions,
 clang-analyzer-apiModeling.TrustNonnull,
+clang-analyzer-apiModeling.TrustReturnsNonnull,
 clang-analyzer-apiModeling.google.GTest,
 clang-analyzer-apiModeling.llvm.CastValue,
 clang-analyzer-apiModeling.llvm.ReturnValue,
@@ -111,6 +134,7 @@
 clang-analyzer-core.uninitialized.Assign,
 clang-analyzer-core.uninitialized.Branch,
 clang-analyzer-core.uninitialized.CapturedBlockVariable,
+clang-analyzer-core.uninitialized.NewArraySize,
 clang-analyzer-core.uninitialized.UndefReturn,
 clang-analyzer-cplusplus.InnerPointer,
 clang-analyzer-cplusplus.Move,
@@ -120,6 +144,7 @@
 clang-analyzer-cplusplus.PureVirtualCall,
 clang-analyzer-cplusplus.SelfAssignment,
 clang-analyzer-cplusplus.SmartPtrModeling,
+clang-analyzer-cplusplus.StringChecker,
 clang-analyzer-cplusplus.VirtualCallModeling,
 clang-analyzer-deadcode.DeadStores,
 clang-analyzer-fuchsia.HandleChecker,
@@ -199,8 +224,10 @@
 clang-analyzer-valist.ValistBase,
 clang-analyzer-webkit.NoUncountedMemberChecker,
 clang-analyzer-webkit.RefCntblBaseVirtualDtor,
+clang-analyzer-webkit.UncountedLambdaCapturesChecker,
 cppcoreguidelines-avoid-c-arrays,
 cppcoreguidelines-avoid-goto,
+cppcoreguidelines-avoid-non-const-global-variables,
 cppcoreguidelines-c-copy-assignment-signature,
 cppcoreguidelines-explicit-virtual-functions,
 cppcoreguidelines-init-variables,
@@ -218,12 +245,20 @@
 cppcoreguidelines-pro-type-union-access,
 cppcoreguidelines-slicing,
 google-explicit-constructor,
+misc-coroutine-hostile-raii,
+misc-header-include-cycle,
+misc-misleading-bidirectional,
+misc-misleading-identifier,
 misc-misplaced-const,
+misc-new-delete-overloads,
+misc-non-copyable-objects,
 misc-redundant-expression,
 misc-static-assert,
 misc-throw-by-value-catch-by-reference,
 misc-unconventional-assign-operator,
 misc-uniqueptr-reset-release,
+misc-unused-alias-decls,
+misc-unused-parameters,
 misc-unused-using-decls,
 modernize-avoid-bind,
 modernize-deprecated-headers,
@@ -265,8 +300,11 @@
 performance-unnecessary-copy-initialization,
 performance-unnecessary-value-param,
 readability-avoid-const-params-in-decls,
+readability-avoid-nested-conditional-operator,
 readability-braces-around-statements,
 readability-const-return-type,
+readability-container-contains,
+readability-container-data-pointer,
 readability-container-size-empty,
 readability-convert-member-functions-to-static,
 readability-delete-null-pointer,
@@ -287,6 +325,7 @@
 readability-redundant-control-flow,
 readability-redundant-declaration,
 readability-redundant-function-ptr-dereference,
+readability-redundant-inline-specifier,
 readability-redundant-member-init,
 readability-redundant-preprocessor,
 readability-redundant-smartptr-get,
@@ -300,6 +339,7 @@
 readability-suspicious-call-argument,
 readability-uniqueptr-delete-release,
 readability-uppercase-literal-suffix'
+
 WarningsAsErrors: '*'
 HeaderFilterRegex: '.*'
 CheckOptions:
@@ -309,3 +349,5 @@
   - { key: readability-identifier-naming.ParameterCase, value: camelBack }
   - { key: readability-identifier-naming.NamespaceCase, value: lower_case }
   - { key: readability-identifier-naming.StructCase,    value: CamelCase  }
+  - { key: cppcoreguidelines-rvalue-reference-param-not-moved.IgnoreUnnamedParams, value: true }
+  - { key: misc-include-cleaner.IgnoreHeaders, value: ((nlohmann/json_fwd.hpp)|(boost/.*/src.hpp)|(boost/.*/detail/.*)|(nlohmann/detail/.*)|(stdio.h)|(ranges)|(bits/chrono.h)|(boost/system/error_code.hpp)) }