------- Comment #2 from reichelt at gcc dot gnu dot org 2007-06-06 22:57 ------- Just a note:
> Also, shouldn't there also be an error about lack of return type for > _M_fill_initialize? Well, here's the code snippet from the function grokdeclarator in decl.c that deals with missing return types: if (type_was_error_mark_node) /* We've already issued an error, don't complain more. */; else if (in_system_header || flag_ms_extensions) /* Allow it, sigh. */; else if (pedantic || ! is_main) pedwarn ("ISO C++ forbids declaration of %qs with no type", name); else warning (OPT_Wreturn_type, "ISO C++ forbids declaration of %qs with no type", name); As you can see, return types may be omitted in system headers (probably because there were too many systems with such headers around). Otherwise you should get a diagnostic. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32208