Exemplo n.º 1
1
void VG_NOTIFY_ON_LOAD(freeres)(Vg_FreeresToRun to_run)
{
#  if !defined(__UCLIBC__) \
      && !defined(VGPV_arm_linux_android) \
      && !defined(VGPV_x86_linux_android) \
      && !defined(VGPV_mips32_linux_android) \
      && !defined(VGPV_arm64_linux_android)

   /* g++ mangled __gnu_cxx::__freeres yields -> _ZN9__gnu_cxx9__freeresEv */
   extern void _ZN9__gnu_cxx9__freeresEv(void) __attribute__((weak));
   if (((to_run & VG_RUN__GNU_CXX__FREERES) != 0) &&
       (_ZN9__gnu_cxx9__freeresEv != NULL)) {
      _ZN9__gnu_cxx9__freeresEv();
   }

#  if defined(VGO_linux)
   /* __libc_freeres() not yet available on Solaris. */
   extern void __libc_freeres(void);
   if ((to_run & VG_RUN__LIBC_FREERES) != 0) {
      __libc_freeres();
   }
#  endif
#  endif

   VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__FREERES_DONE, 0, 0, 0, 0, 0);
   /*NOTREACHED*/
   *(volatile int *)0 = 'x';
}
Exemplo n.º 2
0
void VG_(__libc_freeres_wrapper)( void )
{
   int res;
   extern void __libc_freeres(void);
   __libc_freeres();
   VALGRIND_MAGIC_SEQUENCE(res, 0 /* default */,
                           VG_USERREQ__LIBC_FREERES_DONE, 0, 0, 0, 0);
   /*NOTREACHED*/
   vg_assert(12345+54321 == 999999);
}
Exemplo n.º 3
0
void VG_NOTIFY_ON_LOAD(freeres)( void )
{
#  if !defined(__UCLIBC__) \
      && !defined(__ANDROID__)
   extern void __libc_freeres(void);
   __libc_freeres();
#  endif
   VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__LIBC_FREERES_DONE, 
                                   0, 0, 0, 0, 0);
   /*NOTREACHED*/
   *(volatile int *)0 = 'x';
}
Exemplo n.º 4
0
void VG_NOTIFY_ON_LOAD(freeres)( void )
{
   int res;
#ifndef __UCLIBC__
   extern void __libc_freeres(void);
   __libc_freeres();
#endif
   VALGRIND_MAGIC_SEQUENCE(res, 0 /* default */,
                           VG_USERREQ__LIBC_FREERES_DONE, 0, 0, 0, 0);
   /*NOTREACHED*/
   *(int *)0 = 'x';
}
Exemplo n.º 5
0
void VG_NOTIFY_ON_LOAD(freeres)( void )
{
   int res;
#if !defined(__UCLIBC__) && !defined(VGO_aix5)
   extern void __libc_freeres(void);
   __libc_freeres();
#endif
   VALGRIND_DO_CLIENT_REQUEST(res, 0 /* default */,
                              VG_USERREQ__LIBC_FREERES_DONE, 
                              0, 0, 0, 0, 0);
   /*NOTREACHED*/
   *(volatile int *)0 = 'x';
}
void VG_NOTIFY_ON_LOAD(freeres)( void )
{
#  if !defined(__UCLIBC__) \
   && !defined(VGPV_arm_linux_android) && !defined(VGPV_x86_linux_android) \
   && !defined(VGPV_mips32_linux_android) && !defined(VGPV_arm64_linux_android)
   extern void __libc_freeres(void);
   __libc_freeres();
#  endif
   VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__LIBC_FREERES_DONE, 
                                   0, 0, 0, 0, 0);
   /*NOTREACHED*/
   *(volatile int *)0 = 'x';
}