From ec0691fba1a31df6371532b1f8f92c05a667d1b5 Mon Sep 17 00:00:00 2001 From: surtur Date: Sat, 30 Oct 2021 20:20:30 +0200 Subject: [PATCH] makefile,pre-commit: add clang-tidy --- .clang-tidy | 650 ++++++++++++++++++++++++++++++++++++++++ .pre-commit-config.yaml | 2 + Makefile | 10 +- 3 files changed, 660 insertions(+), 2 deletions(-) create mode 100644 .clang-tidy diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..f122d83 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,650 @@ +--- +Checks: 'clang-diagnostic-*,clang-analyzer-*,*' +WarningsAsErrors: '' +HeaderFilterRegex: '.*' +AnalyzeTemporaryDtors: false +FormatStyle: google +User: nobody +CheckOptions: + - key: readability-suspicious-call-argument.PrefixSimilarAbove + value: '30' + - key: cppcoreguidelines-no-malloc.Reallocations + value: '::realloc' + - key: llvmlibc-restrict-system-libc-headers.Includes + value: '-*' + - key: cppcoreguidelines-owning-memory.LegacyResourceConsumers + value: '::free;::realloc;::freopen;::fclose' + - key: modernize-use-auto.MinTypeNameLength + value: '5' + - key: bugprone-reserved-identifier.Invert + value: 'false' + - key: bugprone-narrowing-conversions.PedanticMode + value: 'false' + - key: altera-struct-pack-align.MaxConfiguredAlignment + value: '128' + - key: bugprone-unused-return-value.CheckedFunctions + value: '::std::async;::std::launder;::std::remove;::std::remove_if;::std::unique;::std::unique_ptr::release;::std::basic_string::empty;::std::vector::empty;::std::back_inserter;::std::distance;::std::find;::std::find_if;::std::inserter;::std::lower_bound;::std::make_pair;::std::map::count;::std::map::find;::std::map::lower_bound;::std::multimap::equal_range;::std::multimap::upper_bound;::std::set::count;::std::set::find;::std::setfill;::std::setprecision;::std::setw;::std::upper_bound;::std::vector::at;::bsearch;::ferror;::feof;::isalnum;::isalpha;::isblank;::iscntrl;::isdigit;::isgraph;::islower;::isprint;::ispunct;::isspace;::isupper;::iswalnum;::iswprint;::iswspace;::isxdigit;::memchr;::memcmp;::strcmp;::strcoll;::strncmp;::strpbrk;::strrchr;::strspn;::strstr;::wcscmp;::access;::bind;::connect;::difftime;::dlsym;::fnmatch;::getaddrinfo;::getopt;::htonl;::htons;::iconv_open;::inet_addr;::isascii;::isatty;::mmap;::newlocale;::openat;::pathconf;::pthread_equal;::pthread_getspecific;::pthread_mutex_trylock;::readdir;::readlink;::recvmsg;::regexec;::scandir;::semget;::setjmp;::shm_open;::shmget;::sigismember;::strcasecmp;::strsignal;::ttyname' + - key: readability-magic-numbers.IgnoredIntegerValues + value: '1;2;3;4;' + - key: cert-dcl51-cpp.AggressiveDependentMemberLookup + value: 'false' + - key: hicpp-use-auto.MinTypeNameLength + value: '5' + - key: readability-inconsistent-declaration-parameter-name.Strict + value: 'false' + - key: hicpp-use-override.IgnoreDestructors + value: 'false' + - key: cppcoreguidelines-macro-usage.CheckCapsOnly + value: 'false' + - key: readability-suspicious-call-argument.DiceDissimilarBelow + value: '60' + - key: cert-dcl37-c.AllowedIdentifiers + value: '' + - key: cert-dcl16-c.IgnoreMacros + value: 'true' + - key: hicpp-use-emplace.SmartPointers + value: '::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr' + - key: hicpp-member-init.IgnoreArrays + value: 'false' + - key: openmp-exception-escape.IgnoredExceptions + value: '' + - key: readability-suspicious-call-argument.Equality + value: 'true' + - key: hicpp-use-override.AllowOverrideAndFinal + value: 'false' + - key: misc-uniqueptr-reset-release.IncludeStyle + value: llvm + - key: abseil-string-find-str-contains.StringLikeClasses + value: '::std::basic_string;::std::basic_string_view;::absl::string_view' + - key: android-comparison-in-temp-failure-retry.RetryMacros + value: TEMP_FAILURE_RETRY + - key: hicpp-signed-bitwise.IgnorePositiveIntegerLiterals + value: 'false' + - key: bugprone-easily-swappable-parameters.QualifiersMix + value: 'false' + - key: cert-err09-cpp.WarnOnLargeObjects + value: 'false' + - key: bugprone-suspicious-string-compare.WarnOnImplicitComparison + value: 'true' + - key: bugprone-argument-comment.CommentNullPtrs + value: '0' + - key: hicpp-use-equals-delete.IgnoreMacros + value: 'true' + - key: cppcoreguidelines-narrowing-conversions.WarnOnFloatingPointNarrowingConversion + value: 'true' + - key: cppcoreguidelines-init-variables.IncludeStyle + value: llvm + - key: modernize-use-nodiscard.ReplacementString + value: '[[nodiscard]]' + - key: modernize-loop-convert.MakeReverseRangeHeader + value: '' + - key: readability-suspicious-call-argument.SuffixSimilarAbove + value: '30' + - key: misc-definitions-in-headers.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: hicpp-uppercase-literal-suffix.NewSuffixes + value: '' + - key: cppcoreguidelines-narrowing-conversions.WarnOnIntegerNarrowingConversion + value: 'true' + - key: bugprone-easily-swappable-parameters.IgnoredParameterNames + value: '"";iterator;Iterator;begin;Begin;end;End;first;First;last;Last;lhs;LHS;rhs;RHS' + - key: modernize-loop-convert.UseCxx20ReverseRanges + value: 'true' + - key: cppcoreguidelines-prefer-member-initializer.UseAssignment + value: 'false' + - key: hicpp-function-size.VariableThreshold + value: '4294967295' + - key: cert-oop57-cpp.MemSetNames + value: '' + - key: hicpp-no-malloc.Deallocations + value: '::free' + - key: performance-type-promotion-in-math-fn.IncludeStyle + value: llvm + - key: google-readability-function-size.LineThreshold + value: '4294967295' + - key: readability-function-cognitive-complexity.DescribeBasicIncrements + value: 'true' + - key: bugprone-suspicious-include.ImplementationFileExtensions + value: 'c;cc;cpp;cxx' + - key: modernize-loop-convert.MakeReverseRangeFunction + value: '' + - key: bugprone-suspicious-missing-comma.SizeThreshold + value: '5' + - key: readability-inconsistent-declaration-parameter-name.IgnoreMacros + value: 'true' + - key: readability-identifier-naming.IgnoreFailedSplit + value: 'false' + - key: hicpp-multiway-paths-covered.WarnOnMissingElse + value: 'false' + - key: readability-qualified-auto.AddConstToQualified + value: 'true' + - key: bugprone-sizeof-expression.WarnOnSizeOfThis + value: 'true' + - key: bugprone-string-constructor.WarnOnLargeLength + value: 'true' + - key: hicpp-no-malloc.Allocations + value: '::malloc;::calloc' + - key: cppcoreguidelines-explicit-virtual-functions.OverrideSpelling + value: override + - key: hicpp-use-noexcept.UseNoexceptFalse + value: 'true' + - key: abseil-string-find-startswith.IncludeStyle + value: llvm + - key: google-global-names-in-headers.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: readability-uppercase-literal-suffix.IgnoreMacros + value: 'true' + - key: cert-dcl59-cpp.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: bugprone-dynamic-static-initializers.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: modernize-make-shared.IgnoreMacros + value: 'true' + - key: bugprone-suspicious-enum-usage.StrictMode + value: 'false' + - key: performance-unnecessary-copy-initialization.AllowedTypes + value: '' + - key: bugprone-suspicious-missing-comma.MaxConcatenatedTokens + value: '5' + - key: modernize-use-transparent-functors.SafeMode + value: 'false' + - key: readability-suspicious-call-argument.Levenshtein + value: 'true' + - key: misc-throw-by-value-catch-by-reference.CheckThrowTemporaries + value: 'true' + - key: bugprone-not-null-terminated-result.WantToUseSafeFunctions + value: 'true' + - key: bugprone-string-constructor.LargeLengthThreshold + value: '8388608' + - key: readability-simplify-boolean-expr.ChainedConditionalAssignment + value: 'false' + - key: cppcoreguidelines-avoid-magic-numbers.IgnoreAllFloatingPointValues + value: 'false' + - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField + value: 'false' + - key: cert-err09-cpp.CheckThrowTemporaries + value: 'true' + - key: performance-inefficient-vector-operation.EnableProto + value: 'false' + - key: bugprone-exception-escape.FunctionsThatShouldNotThrow + value: '' + - key: modernize-loop-convert.MaxCopySize + value: '16' + - key: readability-suspicious-call-argument.PrefixDissimilarBelow + value: '25' + - key: readability-function-size.LineThreshold + value: '4294967295' + - key: bugprone-easily-swappable-parameters.MinimumLength + value: '2' + - key: portability-simd-intrinsics.Suggest + value: 'false' + - key: cppcoreguidelines-pro-bounds-constant-array-index.GslHeader + value: '' + - key: modernize-use-override.IgnoreDestructors + value: 'false' + - key: modernize-make-shared.MakeSmartPtrFunctionHeader + value: '' + - key: modernize-make-shared.MakeSmartPtrFunction + value: 'std::make_shared' + - key: misc-non-private-member-variables-in-classes.IgnorePublicMemberVariables + value: 'false' + - key: bugprone-sizeof-expression.WarnOnSizeOfConstant + value: 'true' + - key: readability-redundant-string-init.StringNames + value: '::std::basic_string_view;::std::basic_string' + - key: modernize-make-unique.IgnoreDefaultInitialization + value: 'true' + - key: modernize-use-emplace.ContainersWithPushBack + value: '::std::vector;::std::list;::std::deque' + - key: readability-magic-numbers.IgnoreBitFieldsWidths + value: 'true' + - key: modernize-make-unique.IncludeStyle + value: llvm + - key: modernize-use-override.OverrideSpelling + value: override + - key: google-readability-function-size.NestingThreshold + value: '4294967295' + - key: google-build-namespaces.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: readability-suspicious-call-argument.LevenshteinDissimilarBelow + value: '50' + - key: bugprone-argument-comment.CommentStringLiterals + value: '0' + - key: concurrency-mt-unsafe.FunctionSet + value: any + - key: google-readability-braces-around-statements.ShortStatementLines + value: '1' + - key: bugprone-reserved-identifier.AllowedIdentifiers + value: '' + - key: cppcoreguidelines-pro-type-member-init.IgnoreArrays + value: 'false' + - key: readability-else-after-return.WarnOnUnfixable + value: 'true' + - key: cppcoreguidelines-avoid-magic-numbers.IgnoredFloatingPointValues + value: '1.0;100.0;' + - key: modernize-use-emplace.IgnoreImplicitConstructors + value: 'false' + - key: cppcoreguidelines-macro-usage.IgnoreCommandLineMacros + value: 'true' + - key: readability-suspicious-call-argument.Substring + value: 'true' + - key: modernize-use-equals-delete.IgnoreMacros + value: 'true' + - key: objc-forbidden-subclassing.ForbiddenSuperClassNames + value: 'ABNewPersonViewController;ABPeoplePickerNavigationController;ABPersonViewController;ABUnknownPersonViewController;NSHashTable;NSMapTable;NSPointerArray;NSPointerFunctions;NSTimer;UIActionSheet;UIAlertView;UIImagePickerController;UITextInputMode;UIWebView' + - key: cppcoreguidelines-pro-bounds-constant-array-index.IncludeStyle + value: llvm + - key: readability-magic-numbers.IgnoreAllFloatingPointValues + value: 'false' + - key: hicpp-use-auto.RemoveStars + value: 'false' + - key: readability-suspicious-call-argument.Abbreviations + value: 'arr=array;cnt=count;idx=index;src=source;stmt=statement;cpy=copy;dest=destination;dist=distancedst=distance;ptr=pointer;wdth=width;str=string;ln=line;srv=server;attr=attribute;ref=reference;buf=buffer;col=column;nr=number;vec=vector;len=length;elem=element;val=value;i=index;var=variable;hght=height;cl=client;num=number;pos=position;lst=list;addr=address' + - key: bugprone-misplaced-widening-cast.CheckImplicitCasts + value: 'false' + - key: readability-uppercase-literal-suffix.NewSuffixes + value: '' + - key: modernize-loop-convert.MinConfidence + value: reasonable + - key: performance-unnecessary-value-param.AllowedTypes + value: '' + - key: readability-uniqueptr-delete-release.PreferResetCall + value: 'false' + - key: misc-throw-by-value-catch-by-reference.MaxSize + value: '-1' + - key: misc-definitions-in-headers.UseHeaderFileExtension + value: 'true' + - key: google-readability-namespace-comments.SpacesBeforeComments + value: '2' + - key: cppcoreguidelines-avoid-magic-numbers.IgnoreBitFieldsWidths + value: 'true' + - key: cert-err61-cpp.CheckThrowTemporaries + value: 'true' + - key: cppcoreguidelines-avoid-magic-numbers.IgnoredIntegerValues + value: '1;2;3;4;' + - key: cppcoreguidelines-no-malloc.Allocations + value: '::malloc;::calloc' + - key: cppcoreguidelines-avoid-magic-numbers.IgnorePowersOf2IntegerValues + value: 'false' + - key: bugprone-narrowing-conversions.IgnoreConversionFromTypes + value: '' + - key: readability-function-size.BranchThreshold + value: '4294967295' + - key: bugprone-suspicious-missing-comma.RatioThreshold + value: '0.200000' + - key: hicpp-function-size.LineThreshold + value: '4294967295' + - key: readability-implicit-bool-conversion.AllowIntegerConditions + value: 'false' + - key: readability-function-size.StatementThreshold + value: '800' + - key: hicpp-use-noexcept.ReplacementString + value: '' + - key: readability-identifier-naming.IgnoreMainLikeFunctions + value: 'false' + - key: cppcoreguidelines-init-variables.MathHeader + value: '' + - key: google-runtime-int.SignedTypePrefix + value: int + - key: google-readability-function-size.StatementThreshold + value: '800' + - key: cert-msc51-cpp.DisallowedSeedTypes + value: 'time_t,std::time_t' + - key: hicpp-use-emplace.TupleMakeFunctions + value: '::std::make_pair;::std::make_tuple' + - key: bugprone-reserved-identifier.AggressiveDependentMemberLookup + value: 'false' + - key: readability-suspicious-call-argument.DiceSimilarAbove + value: '70' + - key: modernize-use-equals-default.IgnoreMacros + value: 'true' + - key: readability-suspicious-call-argument.Abbreviation + value: 'true' + - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor + value: 'false' + - key: cert-dcl37-c.AggressiveDependentMemberLookup + value: 'false' + - key: abseil-string-find-str-contains.AbseilStringsMatchHeader + value: 'absl/strings/match.h' + - key: modernize-use-emplace.SmartPointers + value: '::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr' + - key: cppcoreguidelines-no-malloc.Deallocations + value: '::free' + - key: bugprone-dangling-handle.HandleClasses + value: 'std::basic_string_view;std::experimental::basic_string_view' + - key: readability-magic-numbers.IgnorePowersOf2IntegerValues + value: 'false' + - key: misc-unused-parameters.StrictMode + value: 'false' + - key: readability-suspicious-call-argument.JaroWinklerSimilarAbove + value: '85' + - key: readability-simplify-subscript-expr.Types + value: '::std::basic_string;::std::basic_string_view;::std::vector;::std::array' + - key: performance-unnecessary-copy-initialization.ExcludedContainerTypes + value: '' + - key: modernize-replace-auto-ptr.IncludeStyle + value: llvm + - key: performance-move-const-arg.CheckTriviallyCopyableMove + value: 'true' + - key: hicpp-move-const-arg.CheckTriviallyCopyableMove + value: 'true' + - key: readability-function-size.VariableThreshold + value: '4294967295' + - key: readability-static-accessed-through-instance.NameSpecifierNestingThreshold + value: '3' + - key: cert-dcl16-c.NewSuffixes + value: 'L;LL;LU;LLU' + - key: bugprone-narrowing-conversions.WarnOnFloatingPointNarrowingConversion + value: 'true' + - key: readability-identifier-naming.GetConfigPerFile + value: 'true' + - key: cert-err61-cpp.MaxSize + value: '-1' + - key: cert-sig30-c.AsyncSafeFunctionSet + value: POSIX + - key: hicpp-member-init.UseAssignment + value: 'false' + - key: modernize-use-default-member-init.UseAssignment + value: 'false' + - key: readability-function-size.NestingThreshold + value: '4294967295' + - key: google-readability-function-size.BranchThreshold + value: '4294967295' + - key: llvm-namespace-comment.ShortNamespaceLines + value: '1' + - key: llvm-namespace-comment.SpacesBeforeComments + value: '1' + - key: modernize-use-override.AllowOverrideAndFinal + value: 'false' + - key: cppcoreguidelines-narrowing-conversions.IgnoreConversionFromTypes + value: '' + - key: readability-function-size.ParameterThreshold + value: '4294967295' + - key: hicpp-function-size.NestingThreshold + value: '4294967295' + - key: modernize-pass-by-value.ValuesOnly + value: 'false' + - key: readability-function-cognitive-complexity.IgnoreMacros + value: 'false' + - key: modernize-loop-convert.IncludeStyle + value: llvm + - key: cert-str34-c.DiagnoseSignedUnsignedCharComparisons + value: 'false' + - key: bugprone-narrowing-conversions.WarnWithinTemplateInstantiation + value: 'false' + - key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison + value: 'false' + - key: cppcoreguidelines-explicit-virtual-functions.AllowOverrideAndFinal + value: 'false' + - key: hicpp-braces-around-statements.ShortStatementLines + value: '0' + - key: readability-redundant-smartptr-get.IgnoreMacros + value: 'true' + - key: google-readability-function-size.ParameterThreshold + value: '4294967295' + - key: readability-identifier-naming.AggressiveDependentMemberLookup + value: 'false' + - key: cert-err61-cpp.WarnOnLargeObjects + value: 'false' + - key: modernize-use-emplace.TupleTypes + value: '::std::pair;::std::tuple' + - key: hicpp-use-emplace.IgnoreImplicitConstructors + value: 'false' + - key: modernize-use-emplace.TupleMakeFunctions + value: '::std::make_pair;::std::make_tuple' + - key: cppcoreguidelines-owning-memory.LegacyResourceProducers + value: '::malloc;::aligned_alloc;::realloc;::calloc;::fopen;::freopen;::tmpfile' + - key: bugprone-easily-swappable-parameters.SuppressParametersUsedTogether + value: 'true' + - key: bugprone-argument-comment.StrictMode + value: '0' + - key: hicpp-uppercase-literal-suffix.IgnoreMacros + value: 'true' + - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic + value: 'false' + - key: modernize-replace-random-shuffle.IncludeStyle + value: llvm + - key: modernize-use-bool-literals.IgnoreMacros + value: 'true' + - key: bugprone-easily-swappable-parameters.NamePrefixSuffixSilenceDissimilarityTreshold + value: '1' + - key: bugprone-unhandled-self-assignment.WarnOnlyIfThisHasSuspiciousField + value: 'true' + - key: google-readability-namespace-comments.ShortNamespaceLines + value: '10' + - key: readability-suspicious-call-argument.JaroWinklerDissimilarBelow + value: '75' + - key: bugprone-suspicious-string-compare.StringCompareLikeFunctions + value: '' + - key: modernize-avoid-bind.PermissiveParameterList + value: 'false' + - key: readability-suspicious-call-argument.Suffix + value: 'true' + - key: cert-err09-cpp.MaxSize + value: '-1' + - key: modernize-use-override.FinalSpelling + value: final + - key: hicpp-use-equals-default.IgnoreMacros + value: 'true' + - key: modernize-use-noexcept.ReplacementString + value: '' + - key: modernize-use-using.IgnoreMacros + value: 'true' + - key: hicpp-use-override.FinalSpelling + value: final + - key: cppcoreguidelines-explicit-virtual-functions.FinalSpelling + value: final + - key: hicpp-use-override.OverrideSpelling + value: override + - key: readability-suspicious-call-argument.MinimumIdentifierNameLength + value: '3' + - key: bugprone-narrowing-conversions.WarnOnIntegerNarrowingConversion + value: 'true' + - key: modernize-loop-convert.NamingStyle + value: CamelCase + - key: cppcoreguidelines-pro-type-member-init.UseAssignment + value: 'false' + - key: bugprone-suspicious-include.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: hicpp-function-size.StatementThreshold + value: '800' + - key: readability-suspicious-call-argument.SubstringDissimilarBelow + value: '40' + - key: hicpp-no-malloc.Reallocations + value: '::realloc' + - key: google-runtime-int.UnsignedTypePrefix + value: uint + - key: performance-for-range-copy.WarnOnAllAutoCopies + value: 'false' + - key: bugprone-argument-comment.CommentIntegerLiterals + value: '0' + - key: performance-no-automatic-move.AllowedTypes + value: '' + - key: modernize-pass-by-value.IncludeStyle + value: llvm + - key: bugprone-argument-comment.CommentFloatLiterals + value: '0' + - key: bugprone-too-small-loop-variable.MagnitudeBitsUpperLimit + value: '16' + - key: readability-simplify-boolean-expr.ChainedConditionalReturn + value: 'false' + - key: abseil-string-find-startswith.AbseilStringsMatchHeader + value: 'absl/strings/match.h' + - key: readability-else-after-return.WarnOnConditionVariables + value: 'true' + - key: modernize-use-nullptr.NullMacros + value: 'NULL' + - key: readability-suspicious-call-argument.SuffixDissimilarBelow + value: '25' + - key: bugprone-argument-comment.CommentCharacterLiterals + value: '0' + - key: cppcoreguidelines-macro-usage.AllowedRegexp + value: '^DEBUG_*' + - key: llvm-header-guard.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: readability-suspicious-call-argument.LevenshteinSimilarAbove + value: '66' + - key: cppcoreguidelines-narrowing-conversions.PedanticMode + value: 'false' + - key: modernize-make-shared.IgnoreDefaultInitialization + value: 'true' + - key: readability-suspicious-call-argument.JaroWinkler + value: 'true' + - key: bugprone-implicit-widening-of-multiplication-result.UseCXXHeadersInCppSources + value: 'true' + - key: modernize-make-shared.IncludeStyle + value: llvm + - key: readability-suspicious-call-argument.Prefix + value: 'true' + - key: hicpp-special-member-functions.AllowMissingMoveFunctions + value: 'false' + - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions + value: 'false' + - key: bugprone-implicit-widening-of-multiplication-result.UseCXXStaticCastsInCppSources + value: 'true' + - key: bugprone-signed-char-misuse.CharTypdefsToIgnore + value: '' + - key: cert-dcl51-cpp.Invert + value: 'false' + - key: hicpp-special-member-functions.AllowSoleDefaultDtor + value: 'false' + - key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors + value: 'true' + - key: modernize-make-unique.IgnoreMacros + value: 'true' + - key: performance-for-range-copy.AllowedTypes + value: '' + - key: hicpp-function-size.BranchThreshold + value: '4294967295' + - key: bugprone-argument-comment.CommentBoolLiterals + value: '0' + - key: readability-braces-around-statements.ShortStatementLines + value: '0' + - key: bugprone-argument-comment.CommentUserDefinedLiterals + value: '0' + - key: hicpp-use-emplace.ContainersWithPushBack + value: '::std::vector;::std::list;::std::deque' + - key: abseil-string-find-startswith.StringLikeClasses + value: '::std::basic_string' + - key: hicpp-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted + value: 'false' + - key: readability-redundant-declaration.IgnoreMacros + value: 'true' + - key: performance-inefficient-string-concatenation.StrictMode + value: 'false' + - key: readability-magic-numbers.IgnoredFloatingPointValues + value: '1.0;100.0;' + - key: bugprone-easily-swappable-parameters.IgnoredParameterTypeSuffixes + value: 'bool;Bool;_Bool;it;It;iterator;Iterator;inputit;InputIt;forwardit;FowardIt;bidirit;BidirIt;constiterator;const_iterator;Const_Iterator;Constiterator;ConstIterator;RandomIt;randomit;random_iterator;ReverseIt;reverse_iterator;reverse_const_iterator;ConstReverseIterator;Const_Reverse_Iterator;const_reverse_iteratorConstreverseiterator;constreverseiterator' + - key: modernize-make-unique.MakeSmartPtrFunction + value: 'std::make_unique' + - key: google-runtime-int.TypeSuffix + value: '' + - key: hicpp-function-size.ParameterThreshold + value: '4294967295' + - key: cert-dcl51-cpp.AllowedIdentifiers + value: '' + - key: portability-restrict-system-includes.Includes + value: '*' + - key: cert-oop57-cpp.MemCpyNames + value: '' + - key: modernize-make-unique.MakeSmartPtrFunctionHeader + value: '' + - key: bugprone-signal-handler.AsyncSafeFunctionSet + value: POSIX + - key: bugprone-easily-swappable-parameters.ModelImplicitConversions + value: 'true' + - key: readability-suspicious-call-argument.SubstringSimilarAbove + value: '50' + - key: cppcoreguidelines-narrowing-conversions.WarnWithinTemplateInstantiation + value: 'false' + - key: fuchsia-header-anon-namespaces.HeaderFileExtensions + value: ';h;hh;hpp;hxx' + - key: zircon-temporary-objects.Names + value: '' + - key: hicpp-use-emplace.TupleTypes + value: '::std::pair;::std::tuple' + - key: cppcoreguidelines-narrowing-conversions.WarnOnEquivalentBitWidth + value: 'true' + - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnorePublicMemberVariables + value: 'false' + - key: readability-implicit-bool-conversion.AllowPointerConditions + value: 'false' + - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted + value: 'false' + - key: cert-oop57-cpp.MemCmpNames + value: '' + - key: modernize-use-noexcept.UseNoexceptFalse + value: 'true' + - key: readability-function-cognitive-complexity.Threshold + value: '25' + - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic + value: 'true' + - key: bugprone-argument-comment.IgnoreSingleArgument + value: '0' + - key: bugprone-narrowing-conversions.WarnOnEquivalentBitWidth + value: 'true' + - key: bugprone-sizeof-expression.WarnOnSizeOfIntegerExpression + value: 'false' + - key: performance-faster-string-find.StringLikeClasses + value: '::std::basic_string;::std::basic_string_view' + - key: bugprone-assert-side-effect.CheckFunctionCalls + value: 'false' + - key: google-readability-function-size.VariableThreshold + value: '4294967295' + - key: bugprone-string-constructor.StringNames + value: '::std::basic_string;::std::basic_string_view' + - key: bugprone-assert-side-effect.AssertMacros + value: assert,NSAssert,NSCAssert + - key: bugprone-exception-escape.IgnoredExceptions + value: '' + - key: bugprone-signed-char-misuse.DiagnoseSignedUnsignedCharComparisons + value: 'true' + - key: modernize-use-default-member-init.IgnoreMacros + value: 'true' + - key: llvm-qualified-auto.AddConstToQualified + value: 'false' + - key: altera-unroll-loops.MaxLoopIterations + value: '100' + - key: cert-str34-c.CharTypdefsToIgnore + value: '' + - key: llvm-else-after-return.WarnOnConditionVariables + value: 'false' + - key: bugprone-sizeof-expression.WarnOnSizeOfCompareToConstant + value: 'true' + - key: modernize-raw-string-literal.DelimiterStem + value: lit + - key: readability-suspicious-call-argument.Dice + value: 'true' + - key: misc-throw-by-value-catch-by-reference.WarnOnLargeObjects + value: 'false' + - key: cert-dcl37-c.Invert + value: 'false' + - key: altera-single-work-item-barrier.AOCVersion + value: '1600' + - key: modernize-raw-string-literal.ReplaceShorterLiterals + value: 'false' + - key: performance-inefficient-vector-operation.VectorLikeClasses + value: '::std::vector' + - key: modernize-use-auto.RemoveStars + value: 'false' + - key: abseil-string-find-str-contains.IncludeStyle + value: llvm + - key: bugprone-implicit-widening-of-multiplication-result.IncludeStyle + value: llvm + - key: portability-simd-intrinsics.Std + value: '' + - key: hicpp-use-nullptr.NullMacros + value: '' + - key: readability-redundant-member-init.IgnoreBaseInCopyConstructors + value: 'false' + - key: modernize-replace-disallow-copy-and-assign-macro.MacroName + value: DISALLOW_COPY_AND_ASSIGN + - key: performance-unnecessary-value-param.IncludeStyle + value: llvm + - key: llvm-else-after-return.WarnOnUnfixable + value: 'false' + - key: cert-msc32-c.DisallowedSeedTypes + value: 'time_t,std::time_t' +... + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7b68fb3..39ae91c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,8 @@ repos: - repo: https://github.com/pocc/pre-commit-hooks rev: v1.3.4 hooks: + - id: clang-tidy + args: ["-p", "cmake-build-debug"] - id: cppcheck args: ["--language=c++", "--std=c++20", "--enable=warning,performance,portability,information,unusedFunction,missingInclude", diff --git a/Makefile b/Makefile index 94547ed..8543f9e 100644 --- a/Makefile +++ b/Makefile @@ -2,14 +2,16 @@ cppch = cppcheck cppch_args = --language=c++ --std=c++20 --enable=all --verbose ./*.{cpp,h} cpp_flags = -DCMAKE_CXX_FLAGS=-Wall -Werror -Wextra c = cmake -c_args = -G Ninja -DCMAKE_BUILD_TYPE= +c_args = -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE= n = ninja n_args = -C d_folder = cmake-build-debug r_folder = cmake-build-release +t = clang-tidy +t_args = --config="" --format-style=google --checks="clang-diagnostic-*,clang-analyzer-*,google-*" --use-color=true -p $(d_folder) ./*.{cpp,h} v = valgrind -.PHONY: check build debug release valgrind test +.PHONY: check tidy build debug release valgrind test debug: if [ ! -d "$(d_folder)" ]; then mkdir -pv $(d_folder); fi @@ -23,6 +25,10 @@ release: check: $(cppch) $(cppch_args) + make tidy + +tidy: + $(t) $(t_args) valgrind: valgrind-debug