Enable the static analyser from clang-tidy.
Fix a false positive. The loops in the pagemap accessor are too complicated for the static analyser to check, so it doesn't spot that a non-null return is impossible.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
Checks: '-*,clang-diagnostic-*,google-readability-casting,readability-else-after-return,performance-unnecessary-copy-initialization,bugprone-use-after-move,modernize-use-nullptr,modernize-redundant-void-arg,modernize-return-braced-init-list,modernize-use-default-member-init,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nodiscard,modernize-use-override,cppcoreguidelines-avoid-goto,misc-unconventional-assign-operator,cppcoreguidelines-narrowing-conversions,bugprone-assert-side-effect,bugprone-bool-pointer-implicit-conversion,bugprone-copy-constructor-init,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-macro-parentheses'
|
Checks: '-clang-analyzer-security.insecureAPI.bzero,clang-diagnostic-*,google-readability-casting,readability-else-after-return,performance-unnecessary-copy-initialization,bugprone-use-after-move,modernize-use-nullptr,modernize-redundant-void-arg,modernize-return-braced-init-list,modernize-use-default-member-init,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nodiscard,modernize-use-override,cppcoreguidelines-avoid-goto,misc-unconventional-assign-operator,cppcoreguidelines-narrowing-conversions,bugprone-assert-side-effect,bugprone-bool-pointer-implicit-conversion,bugprone-copy-constructor-init,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects,bugprone-move-forwarding-reference,bugprone-misplaced-widening-cast,bugprone-swapped-arguments'
|
||||||
# It would be nice to enable:
|
# It would be nice to enable:
|
||||||
# - readability-magic-numbers
|
# - readability-magic-numbers
|
||||||
# - modernize-avoid-c-arrays
|
# - modernize-avoid-c-arrays
|
||||||
|
|||||||
@@ -42,6 +42,15 @@
|
|||||||
|
|
||||||
#define UNUSED(x) ((void)(x))
|
#define UNUSED(x) ((void)(x))
|
||||||
|
|
||||||
|
#if __has_builtin(__builtin_assume)
|
||||||
|
# define SNMALLOC_ASSUME(x) __builtin_assume(x)
|
||||||
|
#else
|
||||||
|
# define SNMALLOC_ASSUME(x) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
// #define USE_LZCNT
|
// #define USE_LZCNT
|
||||||
|
|
||||||
#include "address.h"
|
#include "address.h"
|
||||||
|
|||||||
@@ -281,6 +281,7 @@ namespace snmalloc
|
|||||||
|
|
||||||
for (; ix < last; ix++)
|
for (; ix < last; ix++)
|
||||||
{
|
{
|
||||||
|
SNMALLOC_ASSUME(leaf_ix.first != nullptr);
|
||||||
leaf_ix.first->values[ix] = x;
|
leaf_ix.first->values[ix] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user