PATCH RFC: stdio optimization [take 3]

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Thu Jan 6 11:36:00 GMT 2000


 > From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
 > 
 > 	Here is my latest version 3 of the stdio optimizations.
 > 
 > 2.  I still need to make stdio-opt.h get included automatically.
 > Jeff's approach seems right to me, I can handle that.

Okay got the above.  It was easy.



But I noticed a new problem.  There's always one more ... :-)


Here's a short list from a .i file:

 > extern int fprintf(FILE*, const char *, ...);
 > [...]
 > typedef FILE __gcc_builtin_FILE;
 > [...]
 >   __builtin_initialize_FILE ();

The builtin copy of fprintf is declared in __builtin_initialize_FILE().
When this sequence is compiled, the builtin definition for fprintf is
not activated.  If, in the .i file, I manually remove the fprintf decl
or move it after __builtin_initialize_FILE(), then the builtin decl
works.

I think the problem is that when duplicate decls occur, pushdecl (or
really duplicate_decls) only accept the builtin one if it came first.

I'd like to seek suggestions on the best way to relax this condition
in the C & C++ front ends.  Given that I must have FILE declared
before the builtin decl of fprintf, and that the same header (stdio.h)
which declares FILE also declares fprintf, I must support having the
extern decl of fprintf appear before the builtin one.

Speak now, or risk having me come up with a bad hack. :-)

		--Kaveh
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions


More information about the Gcc-patches mailing list