From 94eab59667820f46222ee21dc21ada988fa2beab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 7 Apr 2023 12:15:43 +0300 Subject: Don't use volatile to mean atomic volatile is not sufficient to provide atomic guarantees and real atomics should be used instead. GCC 11 has started warning about using volatile with atomic operations. In case of orc, the volatile integers were always protected with a mutex, which makes it completely unnecessary. Part-of: --- orc/orc.c | 2 +- orc/orcfunctions.c | 4 ++-- tools/orcc.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/orc/orc.c b/orc/orc.c index 7b4808c..40240ef 100644 --- a/orc/orc.c +++ b/orc/orc.c @@ -36,7 +36,7 @@ void _orc_compiler_init(void); void orc_init (void) { - static volatile int inited = FALSE; + static int inited = FALSE; if (!inited) { orc_global_mutex_lock (); diff --git a/orc/orcfunctions.c b/orc/orcfunctions.c index 3ddc501..9aa7f99 100644 --- a/orc/orcfunctions.c +++ b/orc/orcfunctions.c @@ -182,7 +182,7 @@ void orc_memcpy (void * ORC_RESTRICT d1, const void * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static volatile int p_inited = 0; + static int p_inited = 0; static OrcCode *c = 0; void (*func) (OrcExecutor *); @@ -279,7 +279,7 @@ void orc_memset (void * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static volatile int p_inited = 0; + static int p_inited = 0; static OrcCode *c = 0; void (*func) (OrcExecutor *); diff --git a/tools/orcc.c b/tools/orcc.c index 3585e93..36b0adc 100644 --- a/tools/orcc.c +++ b/tools/orcc.c @@ -862,7 +862,7 @@ output_code_execute (OrcProgram *p, FILE *output, int is_inline) fprintf(output, " OrcProgram *p = _orc_program_%s;\n", p->name); } } else { - fprintf(output, " static volatile int p_inited = 0;\n"); + fprintf(output, " static int p_inited = 0;\n"); if (use_code) { fprintf(output, " static OrcCode *c = 0;\n"); } else { -- cgit v1.2.1