this patch breaks some more workers out of pushdecl. 1) in function-scope pushdecl may need to set the decl's context. pushdecl had some funky code there to cope with pushing a function decl in its own context -- that's no longer needed with my changes to start_preparsed_function to get things in the correct order. But there is still some tweaking that needs doing. 2) There are some special rules for function-scope extern decls, they can inherit linkage if they have a decl in the enclosing scope. That code was tangled up with that checking for a matching decl, but is better separated out, which this patch does too. 3) also introduced a DECL_HIDDEN_P, a useful predicate. nathan -- Nathan Sidwell