https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69789

--- Comment #5 from Thomas Markwalder <tmark at isc dot org> ---
A bit more digging reveals that in the logic expression which fails:

{{{
    // Check if we need to run the operation again.
    if (ec == boost::asio::error::would_block
        || ec == boost::asio::error::try_again)
      return false;
}}}

The value for error_category:m_cat differs between the implicitly created
instances for would_block and try_again.

If one splits the if into two separate if statements,  the values for m_cat are
the same.  This looks a like the behavior described under "Static Variables in
Inline Functions" described here:

http://processors.wiki.ti.com/index.php/C++_Inlining_Issues

Reply via email to