Re: orbitcpp 1.3.8 generated code and gcc 2.95 issue



Alexander Nedotsukov wrote:

Hi,

In attempt to build new libbonobomm stuff I faced this problem. Gcc 2.95. don't understands contructions like this (it complains about syntax error):
template<>
inline ::Bonobo::Canvas::affine_slice * ::Bonobo::Canvas::affineProps::alloc ()
{
   return ::Bonobo::Canvas::affine_alloc ();
}

Since we already in ::Bonobo::Canvas namespace scope there this can be rewriten as:
template<>
   inline ::Bonobo::Canvas::affine_slice * affineProps::alloc ()
{
   return ::Bonobo::Canvas::affine_alloc ();
}

Wich satisfy crafty tool.

I believe this problem was introduced in this commit:
http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&file=pass_xlate.cc&branch=&root=/cvs/gnome&subdir=/orbitcpp/orbitcpp/idl-compiler&command=DIFF_FRAMESET&rev1=1.22&rev2=1.23

The question is what can be done to resolve the situation right way? I guess the commit above was reasonable and it's may be not safe just to backout it.

As I recall the reason for using the fully qualified name is to deal correctly with nested array types. To resolve this properly I think we would need to switch from generating code of the form:

namespace X {

Ret Klass::method() { ... }

}

to

Ret X::Klass::method() { ... }

The only hard part is making sure everwhere gets changed over to using fully qualified names.

--
Bowie Owens

CSIRO Mathematical & Information Sciences
phone  : +61 3 9545 8055
fax    : +61 3 9545 8080
mobile : 0425 729 875
email  : Bowie Owens csiro au






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]