We are using the SGI Pro64 compiler version 0.01.0-12 and are mainly
interested in the intermediate representation produced by the compiler.
Initially we tried to build the entire source code using
make build -f Make.cross
But we were unsuccessful. Then :
a) We tried to build ir_walker.c under /osprey1.0/ir_tools since it is
the
most relevant to us.
b) While creating the config.o file:
i) In /usr/include/g++-2/stl_alloc.h : class simple_alloc is
created with a
template class Alloc. This class Alloc is actually class mempool_allocator
during object creation.
ii) In /osprey1.0/common/util/mempool_allocator.h : We have a
non-static
function
pointer allocate (size_type n, const void* =0)
iii) In /usr/include/g++-2/stl_alloc.h we have a call to the
mempool_allocator.allocate(..) function which is as follows :
<template class T, class Alloc>
class simple_alloc
{
...
.... Alloc::allocate (...)
}
However, we understand that only static member functions can be called
using (::) operator.
iv) Hence we are getting errors like function allocate invoked
without
object.
v) Similar argument also applies to the deallocate and other
functions in
stl_vector.h
I dont think this is a problem relating to the gcc version. We are using
gcc version 2.95.2
I am sending the listing produced on standard error when I tried to
build
the make file under osprey1.0/targia32_ia64_nodebug/ir_tools directory. As
evident from this listing, all problems occur when trying to call non-static
member functions using :: operator.
Any help in this regard would be greatly appreciated.
Thanks in advance
Rajalakshmi Iyer
Member of Technical Staff,
Persistent Systems
Pune India.
irtool_err.txt
Description: Text document
|