From f477a3efa9eaa0d5b43865e6e1f5158158aabf12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Wed, 24 Apr 2024 07:58:02 +0200 Subject: [PATCH] make_this_symbol: mark the symbol object as volatile Fixes #738. --- src/c/all_symbols.d | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/c/all_symbols.d b/src/c/all_symbols.d index 54f9bd0c2..a7a667d7a 100644 --- a/src/c/all_symbols.d +++ b/src/c/all_symbols.d @@ -196,8 +196,10 @@ mangle_name(cl_object output, unsigned char *source, int l) @(return found output minarg maxarg); @) +/* FIXME we mark symbol's cl_object as volatile because some versions of gcc + miscompile writes to the cl_symbols union members. See #738. */ static void -make_this_symbol(int i, cl_object s, int code, +make_this_symbol(int i, volatile cl_object s, int code, const char *name, const char *cname, cl_objectfn fun, int narg, cl_object value) {