>From aaa68d60ab6c84783cf050a9e43aa6f40c81e4df Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 3 May 2020 03:00:46 +0200 Subject: [PATCH] Work around a compiler optimization bug on FreeBSD 12.0. * src/builtin.c (ntoa): Declare value parameter as 'volatile'. --- src/builtin.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/builtin.c b/src/builtin.c index 4eaccc6..988cc93 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -1,6 +1,6 @@ /* GNU m4 -- A simple macro processor - Copyright (C) 1989-1994, 2000, 2004, 2006-2014, 2016-2017 Free + Copyright (C) 1989-1994, 2000, 2004, 2006-2014, 2016-2017, 2020 Free Software Foundation, Inc. This file is part of GNU M4. @@ -449,8 +449,9 @@ numeric_arg (token_data *macro, const char *arg, int *valuep) /* Digits for number to ASCII conversions. */ static char const digits[] = "0123456789abcdefghijklmnopqrstuvwxyz"; +/* The 'volatile' neutralizes a clang 6.0.1 optimization bug. */ const char * -ntoa (int32_t value, int radix) +ntoa (int32_t volatile value, int radix) { bool negative; uint32_t uvalue; -- 2.7.4