Binary package hint: gccxml
gccxml fails to parse standard header stdio.h in Intrepid, whereas it works perfectly using the hardy package
steps to reproduce:
$> echo '#include <stdio.h>' > foo.h
$> gccxml foo.h
In file included from /usr/include/stdio.h:906,
from foo.h:1:
/usr/include/bits/stdio2.h: In function 'int sprintf(char*, const char*, ...)':
/usr/include/bits/stdio2.h:35: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int snprintf(char*, size_t, const char*, ...)':
/usr/include/bits/stdio2.h:66: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int fprintf(FILE*, const char*, ...)':
/usr/include/bits/stdio2.h:99: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int printf(const char*, ...)':
/usr/include/bits/stdio2.h:105: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int asprintf(char**, const char*, ...)':
/usr/include/bits/stdio2.h:159: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int __asprintf(char**, const char*, ...)':
/usr/include/bits/stdio2.h:167: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int dprintf(int, const char*, ...)':
/usr/include/bits/stdio2.h:174: error: '__builtin_va_arg_pack' was not declared in this scope
/usr/include/bits/stdio2.h: In function 'int obstack_printf(obstack*, const char*, ...)':
/usr/include/bits/stdio2.h:182: error: '__builtin_va_arg_pack' was not declared in this scope
Confirming, __builtin_ va_arg_ pack is undefined. The file /usr/share/ gccxml- 0.9/GCC/ 4.3/gccxml_ builtins. h says:
In order to really support these we would have to update GCC-XML's
internal parser to be GCC 4.3. Since this has not yet been done we
get most of the way by defining some of these as macros with fake
answers. It is enough to get through GCC 4.3's C++98 standard
library.
As workaround, you can add this at the end of the file:
int __dummy__(...); va_arg_ pack __dummy__
#define __builtin_
The example you give "compiles" fine, and some quite complex code does as well.