From dc57c89ef03b47cedb79a135034a2bffb65c3714 Mon Sep 17 00:00:00 2001
From: Per Hedbor <ph@opera.com>
Date: Fri, 19 Apr 2013 14:59:57 +0200
Subject: [PATCH] Two fixes for C++ compilation.

Explicit casts in guaranteed_memset and external declare low_hashmem
when it is a variable to avoid having multiple instances of it.
---
 src/pike_memory.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/pike_memory.h b/src/pike_memory.h
index ed9f9c6af6..dd4c9c3236 100644
--- a/src/pike_memory.h
+++ b/src/pike_memory.h
@@ -136,9 +136,9 @@ struct mem_searcher
  * sensitive data has to be cleared from memory.
  */
 static INLINE void * guaranteed_memset(void * p, int c, size_t n) {
-    volatile char * _p = p;
+    volatile char * _p = (char *)p;
     while (n--) *_p++ = c;
-    return p;
+    return (void *)p;
 }
 
 #include "pike_search.h"
@@ -159,10 +159,11 @@ PMOD_EXPORT void reverse(char *memory, size_t nitems, size_t size);
 PMOD_EXPORT void reorder(char *memory, INT32 nitems, INT32 size,INT32 *order);
 
 #if (defined(__i386__) || defined(__amd64__)) && defined(__GNUC__)
+PMOD_EXPORT
 #ifdef __i386__
 __attribute__((fastcall)) 
 #endif
-  size_t (*low_hashmem)(const void *, size_t, size_t, size_t);
+ size_t (*low_hashmem)(const void *, size_t, size_t, size_t);
 #else
 PMOD_EXPORT size_t low_hashmem(const void *, size_t len, size_t mlen, size_t key) ATTRIBUTE((pure));
 #endif
-- 
GitLab