diff options
author | Ian Lance Taylor <iant@google.com> | 2006-09-26 21:50:25 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2006-09-26 21:50:25 +0000 |
commit | 274e99f9ae3f56ab0364b3d0947b91deeb3528e1 (patch) | |
tree | 18a06078f9c3e8de23428680a5e30437497d19b8 /gold/resolve.cc | |
parent | d288e464ac39ad965115c86ba29c7dc07ed9f5d6 (diff) | |
download | gdb-274e99f9ae3f56ab0364b3d0947b91deeb3528e1.zip gdb-274e99f9ae3f56ab0364b3d0947b91deeb3528e1.tar.gz gdb-274e99f9ae3f56ab0364b3d0947b91deeb3528e1.tar.bz2 |
g++ 3.2.2 portability fixes.
Diffstat (limited to 'gold/resolve.cc')
-rw-r--r-- | gold/resolve.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gold/resolve.cc b/gold/resolve.cc index 4a9b355..8252f5b 100644 --- a/gold/resolve.cc +++ b/gold/resolve.cc @@ -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; } |