https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88996
--- Comment #5 from emsr at gcc dot gnu.org ---
I was a bit surprised I "needed" these. There are apparently some uses of
these.
I'll roll back and show you...
/home/ed/obj/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/atomic_base.h:104:7:
error: no match for ‘operator|’ (operand types are ‘std::memory_order’ and
‘std::memory_order’)
103 | return memory_order(__cmpexch_failure_order2(__m &
__memory_order_mask)
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| std::memory_order
104 | | (__m & __memory_order_modifier_mask));
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| std::memory_order
Ok, I'm casting:
| __memory_order_modifier(__m & __memory_order_modifier_mask));
This will work without the operators.
Those are sequatial flags.
Killed the ops, fix some more sadness and retest.