diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-02-12 10:37:56 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-02-12 14:30:12 +0000 |
commit | 4591f7e5329dcc6ee9af2f314a050936d470ab5b (patch) | |
tree | ed5797f420c605bbf8a024737f5e7931cb5787da /gcc/d/dmd/cppmangle.c | |
parent | 71b8ed7c61bc6f80df41f9aa3cf9eb57fb664e77 (diff) | |
download | gcc-4591f7e5329dcc6ee9af2f314a050936d470ab5b.zip gcc-4591f7e5329dcc6ee9af2f314a050936d470ab5b.tar.gz gcc-4591f7e5329dcc6ee9af2f314a050936d470ab5b.tar.bz2 |
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.
Diffstat (limited to 'gcc/d/dmd/cppmangle.c')
0 files changed, 0 insertions, 0 deletions