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.

Reply via email to