On Wed, Oct 26, 2022 at 07:06:43AM +0000, Zbigniew Jędrzejewski-Szmek wrote:
> > == User Experience ==
> > User experience does not change.
> 
> "The new default for C standard is -c99. Users who want to use
> an older standard need to specify something like -c89." (???)

It is -std=c89/-std=gnu89 actually.

> > == Dependencies ==
> > To avoid regressing the porting effort, GCC as the system compiler
> > needs to reject obsolete constructs by default. This is expected for
> > GCC 14, to be released as part of Fedora 40 in Spring 2024.
> > 
> > == Contingency Plan ==
> > * Contingency mechanism: Upstream GCC will probably accept obsolete
> > constructs longer in case distributions like Fedora cannot port to
> > modern C in time.
> 
> Hmm, this sounds ominous, like if GCC might stop accepting old C syntax
> altogether. Isn't this just a question of specifying the right standard
> in compilation options?

GCC hasn't changed anything yet, the obsolete constructs are accepted
for decades with warnings, some of them in -Wall, others in -Wextra.
The goal of Florian's work is to determine if it is feasible to reject them
in -std={c,gnu}{9x,99,1x,11,17,18,2x} modes by default in GCC 14.

Examples of the obsolescent syntax:

qux ();         // implicit int, + () args
int baz (a, b)  // old style function definition
  a, b;         // even implicit int here
{
}

foo ()          // implicit int, + () args
{
  bar (1, 2);   // implicitly declared
  baz (1, 2);
}

a;              // implicit int

-Werror=implicit -Werror=implicit-function-declaration 
-Werror=old-style-definition
will reject these even now.  Though, I think -Wold-style-definition warns
even about the no argument case which in C2X is the same as in C++ - ()
being equivalent to (void).

> > == Documentation ==
> > This section will be updated once more documentation of the porting
> > effort will become available.
> > 
> > == Release Notes ==
> > Probably not needed because no user visible impact is intended.
> 
> It's not clear from the description: what about users who compile programs?

It would be GCC that rejects those by default, so it would affect users
compiling programs as well.

        Jakub
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to