g++ 3.2.2 portability fixes.

This commit is contained in:
Ian Lance Taylor
2006-09-26 21:50:25 +00:00
parent d288e464ac
commit 274e99f9ae
7 changed files with 105 additions and 17 deletions

View File

@ -52,7 +52,16 @@ Symbol_table::resolve(Sized_symbol<size>* to,
{
if (object->target()->has_resolve())
{
object->sized_target<size, big_endian>()->resolve(to, sym, object);
Sized_target<size, big_endian>* sized_target;
#ifdef HAVE_MEMBER_TEMPLATE_SPECIFICATIONS
sized_target = object->sized_target<size, big_endian>();
#else
Target* target = object->target();
assert(target->get_size() == size);
assert(target->is_big_endian() ? big_endian : !big_endian);
sized_target = static_cast<Sized_target<size, big_endian>*>(target);
#endif
sized_target->resolve(to, sym, object);
return;
}