semantic will return an empty completation for functions declared in /usr/include/*.h such as "printf". I am using cedet 1.0pre4. And it looks fine in cedet 1.0pre3.
On my system, many of those symbols in stdio.h don't work quite right due
to #defines. With the parse in pre4 now supporting cpp macros, some
looseness in the parser was removed.
In CVS, the cedet.info manual describes briefly how to add things to the
preprocessor list that will make these things work. I have now checked in
a few symbols for the preprocessor map by default that ought to make the
linux headers parse ok.