sorry, but this is a real bug: 'nm' shows that GCC looses completely 
*the definition* of the function which is in fact present in the source file
and as a result you get an unresolved reference at linking stage.
It is not a matter of inlining or not inlining a function, it's a matter 
of *loosing* it's body.
					Regards, Pasha.
 > > ---------------------------------------------------------- test.cc
 > > class A {
 > >   int a;
 > > public:
 > >   A();
 > >   ~A();
 > >   inline int aa() { return 1; }
 > >   virtual int qqqq();
 > > };
 > > 
 > > main() {
 > >   A q;
 > >   int b = q.aa();
 > > }
 > > --------------------------------------------------
 > > /data35/upgrade/murat/run1>gcc -c test.cc ; nm test.o | grep aa
 > >          U aa__1A
 > > -------------------------------------------------------------------------------