On Thu, Feb 20, 2014 at 2:16 AM, Jonathan Wakely <jwakely....@gmail.com> wrote:
> On 13 February 2014 20:47, Patrick Palka wrote:
>> On a related note, would a patch to officially enable
>> -Wmissing-declarations in the build process be well regarded?
>
> What would be the advantage?

A missing declaration for an extern function definition likely means
that the function should be marked static instead, so enabling the
flag would help detect whether a function should otherwise be given
static linkage.  Isn't this especially important in libstdc++, where
accidentally exposing an internal symbol in the library's ABI means
having to keep the symbol around until the next ABI bump?

>
>>  Since
>> -Wmissing-prototypes is currently enabled, I assume it is the
>> intention of the GCC devs to address these warnings, and that during
>> the transition from a C to C++ bootstrap compiler a small oversight
>> was made (that -Wmissing-prototypes is a no-op against C++ source
>> files).
>
> The additional safety provided by -Wmissing-prototypes is already
> guaranteed for C++.
>
> In C a missing prototype causes the compiler to guess, probably
> incorrectly, how to call the function.
>
> In C++ a function cannot be called without a previous declaration and
> the linker will notice if you declare a function with one signature
> and define it differently.

Good point..  -Wmissing-declarations does not provide additional
safety to C++.  Really the only benefit to the flag is the static
thing mentioned above.

Reply via email to