https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66145
--- Comment #32 from Richard Biener <rguenth at gcc dot gnu.org> --- Now the reverse fails - a program compiled with a GCC defaulting to the old ABI (like GCC 4.8) now fails to run with a dual-ABI libstdc++: #include <iostream> #include <fstream> using namespace std; int main () { std::ifstream pstats; pstats.exceptions(ifstream::failbit | ifstream::badbit | ifstream::eofbit); try { printf("\n Opening file : /proc/0/stat "); pstats.open("/proc/0/stat"); } catch(ifstream::failure e) { printf("\n!!Caught ifstream exception!!\n"); if(pstats.is_open()) { pstats.close(); } } return 0; } tmp> g++-4.8 t.C tmp> ./a.out terminate called after throwing an instance of 'std::ios_base::failure[abi:cxx11]' what(): basic_ios::clear: iostream error Aborted (core dumped) tmp> LD_LIBRARY_PATH=/space/rguenther/install/gcc-6.4/lib64 ./a.out Opening file : /proc/0/stat !!Caught ifstream exception!!