Minimal fixes for -fno-exceptions.

2004-12-29  Paolo Carlini  <pcarlini@suse.de>

	Minimal fixes for -fno-exceptions.
	* src/bitmap_allocator.cc (free_list::_M_get): Use
	__throw_exception_again, instead of plain throw.
	* testsuite/testsuite_abi.cc (get_symbol, examine_symbol,
	create_symbols): Likewise.
	* testsuite/testsuite_hooks.cc (verify_demangle,
	run_tests_wrapped_locale, run_tests_wrapped_env): Likewise.
	(try_named_locale): Wrap the whole catch in __EXCEPTIONS.

From-SVN: r92720
This commit is contained in:
Paolo Carlini 2004-12-30 00:21:10 +00:00 committed by Paolo Carlini
parent b53948b951
commit d98fd13429
4 changed files with 22 additions and 7 deletions

View File

@ -1,3 +1,14 @@
2004-12-29 Paolo Carlini <pcarlini@suse.de>
Minimal fixes for -fno-exceptions.
* src/bitmap_allocator.cc (free_list::_M_get): Use
__throw_exception_again, instead of plain throw.
* testsuite/testsuite_abi.cc (get_symbol, examine_symbol,
create_symbols): Likewise.
* testsuite/testsuite_hooks.cc (verify_demangle,
run_tests_wrapped_locale, run_tests_wrapped_env): Likewise.
(try_named_locale): Wrap the whole catch in __EXCEPTIONS.
2004-12-29 Paolo Carlini <pcarlini@suse.de>
* include/tr1/type_traits: Add has_nothrow_constructor.

View File

@ -96,7 +96,7 @@ namespace __gnu_cxx
*__ret = __sz;
return __ret + 1;
}
throw std::bad_alloc();
__throw_exception_again std::bad_alloc();
}
else
{

View File

@ -263,7 +263,7 @@ get_symbol(const string& mangled, const symbols& s)
{
ostringstream os;
os << "get_symbol failed for symbol " << mangled;
throw symbol_error(os.str());
__throw_exception_again symbol_error(os.str());
}
}
@ -277,7 +277,7 @@ examine_symbol(const char* name, const char* file)
sym.print();
}
catch(...)
{ throw; }
{ __throw_exception_again; }
}
void
@ -420,7 +420,7 @@ create_symbols(const char* file)
{
ostringstream os;
os << "create_symbols failed for file " << file;
throw runtime_error(os.str());
__throw_exception_again runtime_error(os.str());
}
return s;
}

View File

@ -137,7 +137,7 @@ namespace __gnu_test
std::string w(wanted);
if (w != s)
throw std::runtime_error(s);
__throw_exception_again std::runtime_error(std::string(s));
}
@ -184,7 +184,8 @@ namespace __gnu_test
VERIFY( preLC_ALL == postLC_ALL );
}
else
throw environment_variable(string("LC_ALL for ") + string(name));
__throw_exception_again
environment_variable(string("LC_ALL for ") + string(name));
}
void
@ -209,7 +210,8 @@ namespace __gnu_test
setenv(env, oldENV ? oldENV : "", 1);
}
else
throw environment_variable(string(env) + string(" to ") + string(name));
__throw_exception_again
environment_variable(string(env) + string(" to ") + string(name));
#endif
}
@ -220,6 +222,7 @@ namespace __gnu_test
{
return std::locale(name);
}
#ifdef __EXCEPTIONS
catch (std::runtime_error& ex)
{
// Thrown by generic and gnu implemenation if named locale fails.
@ -228,6 +231,7 @@ namespace __gnu_test
else
throw;
}
#endif
}
int