mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
add alternative macro without C casts to avoid Cppcheck warnings
This commit is contained in:
parent
1290733c89
commit
59b4e082a8
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2020, Intel Corporation
|
||||
* Copyright (c) 2024, VectorCamp PC
|
||||
* Copyright (c) 2021, Arm Limited
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -133,6 +134,7 @@ struct ALIGN_CL_DIRECTIVE NFA {
|
||||
/* Note: implementation (e.g. a LimEx) directly follows struct in memory */
|
||||
} ;
|
||||
|
||||
#ifndef __cplusplus
|
||||
// Accessor macro for the implementation NFA: we do things this way to avoid
|
||||
// type-punning warnings.
|
||||
#define getImplNfa(nfa) \
|
||||
@ -140,6 +142,13 @@ struct ALIGN_CL_DIRECTIVE NFA {
|
||||
|
||||
// Non-const version of the above, used at compile time.
|
||||
#define getMutableImplNfa(nfa) ((char *)(nfa) + sizeof(struct NFA))
|
||||
#else
|
||||
// Same versions without C casts to avoid Cppcheck warnings
|
||||
#define getImplNfa(nfa) \
|
||||
(reinterpret_cast<const void *>(reinterpret_cast<const char *>(nfa) + sizeof(struct NFA)))
|
||||
|
||||
#define getMutableImplNfa(nfa) (reinterpret_cast<char *>(nfa) + sizeof(struct NFA))
|
||||
#endif
|
||||
|
||||
static really_inline u32 nfaAcceptsEod(const struct NFA *nfa) {
|
||||
return nfa->flags & NFA_ACCEPTS_EOD;
|
||||
|
Loading…
x
Reference in New Issue
Block a user