We currently only use 'asm' in .cc files (where we control the build
flags) and in the experimental::simd headers. We could just say that
-fno-asm is not compatible with libstdc++ and so using it is not
supported, but we can also just make this small change.

libstdc++-v3/ChangeLog:

        * include/std/meta (exception::what, access_context::via): Use
        __asm__ instead of asm keyword.
---

Tested x86_64-linux.

 libstdc++-v3/include/std/meta | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/include/std/meta b/libstdc++-v3/include/std/meta
index 59a678037a16..2ed7708dcbf6 100644
--- a/libstdc++-v3/include/std/meta
+++ b/libstdc++-v3/include/std/meta
@@ -120,7 +120,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        // from UTF-8 to ordinary literal encoding failed.
        // In that case what() should be non-constant.
        if (_M_what.size() == 0 && _M_u8what.size() != 0)
-         asm("");
+         __asm__("");
        return _M_what.c_str();
       }
       consteval u8string_view u8what() const noexcept { return _M_u8what; }
@@ -599,7 +599,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                                       "or complete class type reflection",
                                     ^^access_context::via);
 #else
-         asm("");
+         __asm__("");
          return *this;
 #endif
        }
-- 
2.53.0

Reply via email to