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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jonathan Wakely
<r...@gcc.gnu.org>:

https://gcc.gnu.org/g:1d5d30410655f21bdeee6c5f2fd970247eea4d23

commit r10-9585-g1d5d30410655f21bdeee6c5f2fd970247eea4d23
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Fri Feb 12 10:37:56 2021 +0000

    libstdc++: Fix bootstrap with -fno-rtti [PR 99077]

    When libstdc++ is built without RTTI the __ios_failure type is just an
    alias for std::ios_failure, so trying to construct it from an int won't
    compile. This changes the RTTI-enabled __ios_failure type to have the
    same constructor parameters as std::ios_failure, so that the constructor
    takes the same arguments whether RTTI is enabled or not.

    The __throw_ios_failure function now constructs the error_code, instead
    of the __ios_failure constructor. As a drive-by fix that error_code is
    constructed with std::generic_category() not std::system_category(),
    because the int comes from errno which corresponds to the generic
    category.

    libstdc++-v3/ChangeLog:

            PR libstdc++/99077
            * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
            Change int parameter to error_code, to match std::ios_failure.
            (__throw_ios_failure(const char*, int)): Construct error_code
            from int parameter.

    (cherry picked from commit 4591f7e5329dcc6ee9af2f314a050936d470ab5b)

Reply via email to