[GCC-XML] static functions: no `static' attribute?

Brad King brad.king at kitware.com
Thu Aug 19 08:55:01 EDT 2010


On 08/19/2010 07:23 AM, David Cole wrote:
> Here is a sampling of the output of processing vtkWin32OutputWindow.h
> with gccxml:
> 
>   <Method id="_17" name="IsTypeOf" returns="_64" static="1" context="_9"
> access="public" mangled="_ZN20vtkWin32OutputWindow8IsTypeOfEPKc"
> demangled="vtkWin32OutputWindow::IsTypeOf(char const*)" location="f1:35"
> file="f1" line="35" endline="35" inline="1">
>     <Argument name="type" type="_7" location="f1:35" file="f1" line="35"/>
>   </Method>
> 
> There is clearly a static="1" attribute on each static method, just as I
> would expect.

This is a class static method which is a different use of the "static"
keyword.  It affects the interface of the function (whether there is
an implicit 'this' argument).

> On Thu, Aug 19, 2010 at 12:17 AM, Óscar Fuentes <ofv at wanadoo.es
> <mailto:ofv at wanadoo.es>> wrote:
> 
>     Qt have something like this on their headers:
> 
>     inline static int foo(int blah) { .... }

This use of "static" affects linkage but not the function interface.

>     `inline' is reported, but not `static'.
> 
>     Is this a limitation of gcc-xml or a bug?

It was never intended to work.  It may be possible to implement but
I do not know where GCC's parser keeps this information.  Take a look
at GCC/gcc/tree.h, GCC/gcc/cp/cp-tree.h, and GCC/gcc/cp/xml.c if you
want to try it.

-Brad



More information about the gccxml mailing list