From d59abf24e290e96c389698b5dac961eebd9ffb8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Tue, 22 Jun 2010 14:37:19 +0200
Subject: [PATCH] Added missing macro CAST_TO_FUN() in LIBPIKE mode.

Rev: src/main.c:1.240
---
 src/main.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/main.c b/src/main.c
index d2b4f878cb..84130078f4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: main.c,v 1.239 2010/06/21 15:10:34 grubba Exp $
+|| $Id: main.c,v 1.240 2010/06/22 12:37:19 grubba Exp $
 */
 
 #include "global.h"
@@ -203,6 +203,24 @@ static void set_default_master(const char *bin_name)
 static char libpike_file[MAXPATHLEN * 2];
 static void *libpike;
 
+typedef void (*modfun)(void);
+#ifdef NO_CAST_TO_FUN
+/* Function pointers can't be casted to scalar pointers according to
+ * ISO-C (probably to support true Harward achitecture machines).
+ */
+static modfun CAST_TO_FUN(void *ptr)
+{
+  union {
+    void *ptr;
+    modfun fun;
+  } u;
+  u.ptr = ptr;
+  return u.fun;
+}
+#else /* !NO_CAST_TO_FUN */
+#define CAST_TO_FUN(X)	((modfun)X)
+#endif /* NO_CAST_TO_FUN */
+
 static void (*init_pike_var)(const char **argv, const char *file);
 static void (*init_pike_runtime_var)(void (*exit_cb)(int));
 static void (*add_predefine_var)(char *s);
-- 
GitLab