This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] PR 53063 encode group options in .opt files


On Thu, May 17, 2012 at 12:41 PM, Gabriel Dos Reis
<gdr@integrable-solutions.net> wrote:
> On Thu, May 17, 2012 at 12:28 PM, Manuel López-Ibáñez
> <lopezibanez@gmail.com> wrote:
>> On 17 May 2012 19:25, Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
>>> On Thu, May 17, 2012 at 12:19 PM, Chung-Lin Tang
>>> <cltang@codesourcery.com> wrote:
>>>> On 2012/5/17 01:55 AM, Manuel López-Ibáñez wrote:
>>>>>> I'm guessing these changes are the cause of a full C bootstrap
>>>>>> > (--disable-build-poststage1-with-cxx) failure I'm seeing on trunk. The
>>>>>> > *_handle_option_auto function prototypes are not seen in options.c, and
>>>>>> > -Werror -Wmissing-prototypes are in effect (oddly, such strict checking
>>>>>> > is not enforced in the default post-stage1 C++ bootstrap)
>>>>> Yep, We should add -Wmissing-declarations to the post-stage1 flags,
>>>>> which also exists in C. Could you also add that to your patch?
>>>>>
>>>>
>>>> I'm a little unsure of how -Wmissing-declarations vs
>>>> -Wmissing-prototypes behave for C? Anyways here's a patch to add
>>>> -Wmissing-declarations for C++, keeping C as is.
>>>
>>> What is the purpose of ?-Wmissing-declarations for C++?
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50134
>
> The point is: it is mostly useless for C++. ?The rationale for its
> existence in C are largely irrelevant in the context of C++.

Let me add that the notion of "global function defined in header" is
largely meaningless in C++.  I fear this is one of those cases where
we are trying too hard to push a C style to C++.  We should not.

The notion of "global function in C++" can only be interpreted as
meaning a function with external linkage -- because C++ has namespace
and C does not, and a there is no reason to treat the global scope differently.
 Furthermore, C++98 and C++03 requires that functions
used in certain contexts have external linkage.  For GCC's own source code,
we would refrain from anonymous namespaces because they might interfer with
bootstrap compare and reproducibility.  That means we are left with
having to declare
those functions right before their definitions, not but in headers;
that is just plain silly.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]