Skip to content

Atomic compiler warnings (from C11 atomic PR) #5713

@jsquyres

Description

@jsquyres

I am seeing lots of these warnings on master HEAD when compiling with gcc 7.3.0 on RHEL 6.x:

runtime/opal_progress.c: In function ‘opal_progress_events’:
runtime/opal_progress.c:177:63: warning: passing argument 1 of ‘opal_thread_swap_32’ from incompatible pointer type [-Wincompatible-pointer-types]
     if( opal_progress_event_flag != 0 && !OPAL_THREAD_SWAP_32(&lock, 1) ) {
                                                               ^
In file included from ../opal/threads/mutex.h:31:0,
                 from ../opal/runtime/opal_progress.h:34,
                 from runtime/opal_progress.c:32:
../opal/threads/thread_usage.h:136:20: note: expected ‘_Atomic opal_atomic_int32_t * {aka _Atomic int *}’ but argument is of type ‘volatile int32_t * {aka volatile int *}’
 static inline type opal_thread_swap_ ## suffix (opal_atomic_ ## addr_type *ptr, type newvalue)                     ^
../opal/threads/thread_usage.h:158:1: note: in expansion of macro ‘OPAL_THREAD_DEFINE_ATOMIC_SWAP’
 OPAL_THREAD_DEFINE_ATOMIC_SWAP(int32_t, int32_t, 32)
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bisecting shows that fe6528b (i.e., PR #5445, "Update opal to use C11 atomics if available") is the culprit.

@hjelmn can you please have a look? Thanks!

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions