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; }