https://bugs.kde.org/show_bug.cgi?id=466105

--- Comment #1 from Paul Floyd <pjfl...@wanadoo.fr> ---
Were next for this and for https://bugs.kde.org/show_bug.cgi?id=433857 ?

I think that I'd like to avoid moving all of the aligment checking code into
all of the replacement functions (unless I can refactor everything into one
place). The advantage of that, though, would be checking directly within
memcheck.

The alternative is to do something like the memcheck overlap mechanism. Roughly
this is to wrap vg_replace_strmem.c with mc_replace_strmem.c with the one
difference that the mc_ version defines the RECORD_OVERLAP_ERROR macro before
including vg_replace_strmem.c

So if I do that I'd need a mc_replace_malloc.c that defines a macro like

#define VERIFY_ALIGNMENT(alignment)                  \
  VALGRIND_DO_CLIENT_REQUEST_STMT(                              \
                  _VG_USERREQ__MEMCHECK_VERIFY_ALIGNMENT   \
                  alignment, 0, 0, 0, 0)

back in vg_replace_malloc.c

#if !defined(VERIFY_ALIGNMENT)
#define VERIFY_ALIGNMENT(alignment) do { } while (0)
#endif

and then

#define MEMALIGN(soname, fnname) \
   \
   void* VG_REPLACE_FUNCTION_EZU(10110,soname,fnname) \
            ( SizeT alignment, SizeT n ); \
   void* VG_REPLACE_FUNCTION_EZU(10110,soname,fnname) \
            ( SizeT alignment, SizeT n )  \
   { \
      void* v; \
      \
      DO_INIT; \
      TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \
      VERIFY_ALIGNMENT(alignment); \

and then of course also add the check, error output, suppression output,
suppression reader, manual change ...

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to