]) | ]) | ||||
fi | fi | ||||
AC_CHECK_HEADERS([valgrind/memcheck.h]) | |||||
if test "$with_async" = "no" ; then | if test "$with_async" = "no" ; then | ||||
have_async=no | have_async=no | ||||
else | else |
memset(ref_hash_tab, 0, sizeof(ref_hash_tab)); | memset(ref_hash_tab, 0, sizeof(ref_hash_tab)); | ||||
n_phoneme_tabs = 0; | n_phoneme_tabs = 0; | ||||
MAKE_MEM_UNDEFINED(&n_phcodes_list, sizeof(n_phcodes_list)); | |||||
MAKE_MEM_UNDEFINED(&phoneme_tab_list2, sizeof(phoneme_tab_list2)); | |||||
stack_ix = 0; | stack_ix = 0; | ||||
MAKE_MEM_UNDEFINED(&stack, sizeof(stack)); | |||||
StartPhonemeTable("base"); | StartPhonemeTable("base"); | ||||
CompilePhonemeFiles(); | CompilePhonemeFiles(); | ||||
ungot_char2 = 0; | ungot_char2 = 0; | ||||
n_ssml_stack = 1; | n_ssml_stack = 1; | ||||
MAKE_MEM_UNDEFINED(&ssml_stack[1], sizeof(ssml_stack) - sizeof(ssml_stack[0])); | |||||
n_param_stack = 1; | n_param_stack = 1; | ||||
MAKE_MEM_UNDEFINED(¶m_stack[1], sizeof(param_stack) - sizeof(param_stack[0])); | |||||
ssml_stack[0].tag_type = 0; | ssml_stack[0].tag_type = 0; | ||||
for (param = 0; param < N_SPEECH_PARAM; param++) | for (param = 0; param < N_SPEECH_PARAM; param++) |
#include <endian.h> // for BYTE_ORDER, BIG_ENDIAN | #include <endian.h> // for BYTE_ORDER, BIG_ENDIAN | ||||
#include <espeak-ng/espeak_ng.h> | #include <espeak-ng/espeak_ng.h> | ||||
#if defined(__has_feature) | |||||
# if __has_feature(memory_sanitizer) | |||||
# include <sanitizer/msan_interface.h> | |||||
# define MAKE_MEM_UNDEFINED(addr, len) __msan_unpoison(addr, len) | |||||
# endif | |||||
#endif | |||||
#ifndef MAKE_MEM_UNDEFINED | |||||
# ifdef HAVE_VALGRIND_MEMCHECK_H | |||||
# include <valgrind/memcheck.h> | |||||
# define MAKE_MEM_UNDEFINED(addr, len) VALGRIND_MAKE_MEM_UNDEFINED(addr, len) | |||||
# else | |||||
# define MAKE_MEM_UNDEFINED(addr, len) ((void) (addr, len)) | |||||
# endif | |||||
#endif | |||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
extern "C" | extern "C" |
#endif | #endif | ||||
#include "sintab.h" | #include "sintab.h" | ||||
#include "speech.h" | |||||
static void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v); | static void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v); | ||||
static void WcmdqIncHead() | static void WcmdqIncHead() | ||||
{ | { | ||||
MAKE_MEM_UNDEFINED(&wcmdq[wcmdq_head], sizeof(wcmdq[wcmdq_head])); | |||||
wcmdq_head++; | wcmdq_head++; | ||||
if (wcmdq_head >= N_WCMDQ) wcmdq_head = 0; | if (wcmdq_head >= N_WCMDQ) wcmdq_head = 0; | ||||
} | } |