[GCC-XML] Re: Using gccxml on a C file?

Brad King brad.king at kitware.com
Tue Jan 3 10:20:46 EST 2006


Tony Whitley wrote:
> I'm using gccxml to extract source file information from a C file but I get
> a variety of C++ errors like:
> 
>  error: ISO C++ forbids declaration of `...` with no type
> 
> and I'd rather not edit all the (header) files to make them C++ compatible.
> 
> I tried using
> 
>  set GCCXML_FLAGS=-x c
> 
> but that just produces the error
> 
>  gccxml_cc1plus.exe: error: unrecognized option `-x c'
> 
> Is there a way of making gccxml handle a plain C file?

No, because unlike "gcc" the "gccxml" front end always calls the GCC C++ 
parser (called gccxml_cc1plus instead of cc1plus).  The GCC-XML dump 
code is written in GCC/gcc/cp/xml.c inside the patched gcc tree, so it 
is C++-specific.

Your best option is to get xml.c to work with the GCC C compiler.  Look 
in the source tree under GCC/gcc/* for the C compiler files.  Also, in 
GCC/gcc/cp/semantics.c there is a call to do_xml_output inside the 
finish_translation_unit function.  This is the entry point for the C++ 
dump.  You'll have to find the equivalent place in the C compiler.  My 
guess at a quick glance is the finish_file function in c-lang.c.  Then 
you need to add a gccxml_cc1 executable that builds the C compiler files.

Once the C compiler is getting built then the GCC_XML/GXFront/* files 
will have to be modified to execute gccxml_cc1 instead of gccxml_cc1plus 
when a C file is given as input.

I might eventually get to making changes like this but I have no time 
right now.  You can submit a feature request here:

http://www.gccxml.org/Bug

If you make the changes yourself please go back in to the bug report and 
add information about them.

Good luck,
-Brad


More information about the gccxml mailing list