My understanding is that, unless you have a function prototype, you will lose type info about the parameters:
"The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of the parameters is supplied."
i.e. the most important is the end of that sentence, so GCC behavior should be right.