[Bug libstdc++/70238] New: [5/6 Regression] std::future_category ABI change
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 15 11:27:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70238
Bug ID: 70238
Summary: [5/6 Regression] std::future_category ABI change
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Keywords: ABI
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
Target Milestone: ---
In GCC 4.8 std::future_category returned std::error_category while with
GCC 5 it now returns std::_V2::error_category but it's manged
symbol didn't change nor was there a new symbol version introduced.
This makes the following testcase fail when compiled with GCC 4.8 or 4.9
and run with the libstdc++ runtime from GCC 5 or later.
#include <thread>
#include <future>
#include <system_error>
extern "C" void abort (void);
using namespace std;
int main(int argc, char *argv[])
{
const std::error_category& cat = std::future_category();
std::error_condition e_cond((int)std::future_errc::future_already_retrieved,
cat);
bool ret=cat.equivalent((int)std::future_errc::promise_already_satisfied,
e_cond);
if (ret != 0)
abort ();
return 0;
}
More information about the Gcc-bugs
mailing list