summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-09-22 12:31:35 -0400
committerPaul Smith <psmith@gnu.org>2013-09-22 17:10:35 -0400
commitc3524b83b9bfb7e943f9b91b0d624129a78e5963 (patch)
tree3819a5ed9b0d36f7a586ebe0011a6584832d1aba
parent0296e40fc73d88b33e78899f95ef7b6c1a957d06 (diff)
downloadgunmake-c3524b83b9bfb7e943f9b91b0d624129a78e5963.tar.gz
Use explicit cast between void* and pointer-to-function.
-rw-r--r--ChangeLog5
-rw-r--r--guile.c4
-rw-r--r--load.c4
3 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b0fcb5..816a2ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2013-09-22 Paul Smith <psmith@gnu.org>
+ * guile.c (guile_define_module): Technically a void* cannot
+ contain a pointer-to-function and some compilers warn about this.
+ Cast the function pointers.
+ * load.c (load_object): Ditto.
+
* read.c (eval): If load_file() returns -1, don't add this to the
"to be rebuilt" list.
* doc/make.texi (load Directive): Document it.
diff --git a/guile.c b/guile.c
index 20e58d4..9c9bf5c 100644
--- a/guile.c
+++ b/guile.c
@@ -72,10 +72,10 @@ guile_define_module (void *data UNUSED)
#include "gmk-default.h"
/* Register a subr for GNU make's eval capability. */
- scm_c_define_gsubr ("gmk-expand", 1, 0, 0, guile_expand_wrapper);
+ scm_c_define_gsubr ("gmk-expand", 1, 0, 0, (scm_t_subr) guile_expand_wrapper);
/* Register a subr for GNU make's eval capability. */
- scm_c_define_gsubr ("gmk-eval", 1, 0, 0, guile_eval_wrapper);
+ scm_c_define_gsubr ("gmk-eval", 1, 0, 0, (scm_t_subr) guile_eval_wrapper);
/* Define the rest of the module. */
scm_c_eval_string (GUILE_module_defn);
diff --git a/load.c b/load.c
index 165153a..a2cbc25 100644
--- a/load.c
+++ b/load.c
@@ -82,12 +82,12 @@ load_object (const gmk_floc *flocp, int noerror,
}
/* Assert that the GPL license symbol is defined. */
- symp = dlsym (dlp, "plugin_is_GPL_compatible");
+ symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible");
if (! symp)
fatal (flocp, _("Loaded object %s is not declared to be GPL compatible"),
ldname);
- symp = dlsym (dlp, symname);
+ symp = (load_func_t) dlsym (dlp, symname);
if (! symp)
fatal (flocp, _("Failed to load symbol %s from %s: %s"),
symname, ldname, dlerror ());