aboutsummaryrefslogtreecommitdiff
path: root/gold/resolve.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2006-09-26 21:50:25 +0000
committerIan Lance Taylor <iant@google.com>2006-09-26 21:50:25 +0000
commit274e99f9ae3f56ab0364b3d0947b91deeb3528e1 (patch)
tree18a06078f9c3e8de23428680a5e30437497d19b8 /gold/resolve.cc
parentd288e464ac39ad965115c86ba29c7dc07ed9f5d6 (diff)
downloadgdb-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.cc11
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;
}