On Sat, Feb 01, 2025 at 09:49:17PM +0100, Harald Anlauf wrote:
> Am 01.02.25 um 21:03 schrieb Steve Kargl:
> > On Sat, Feb 01, 2025 at 07:25:51PM +0100, Harald Anlauf wrote:
> > > 
> > > the attached patch downgrades different constant character lengths in an
> > > array constructor from a GNU to a legacy extension, so that users get a
> > > warning with -std=gnu.  We continue to generate an error when standard
> > > conformance is requested.
> > > 
> > > Regtested on x86_64-pc-linux-gnu (found one testcase where this
> > > triggered... :)
> > > 
> > > OK for mainline?
> > > 
> > 
> > My vote is 'no'.
> > 
> > This is either a GNU extension or an error.  It is certainly
> > not a legacy issue as array constructors simple cannot appear
> > old moldy *legacy* codes.
> 
> legacy /= moldy.
> 
> My intention is to downgrade existing, potentially dangerous
> GNU extensions (like this one) carefully to "legacy", but not
> with an axe.
> 
> > I would be in favor of making it a hard error.  If you believe
> > gfortan must be able to compile invalid source, then add an option
> > such as -fallow-invalid-scalar-character-entities-in-array-constructor.
> 
> I don't see why we shall scare users by making code that is currently
> accepted silently, because it is a GNU extension, suddenly to a hard
> error.
> 
> So why must we be so tough?
> 

Because -std=legacy allows a whole bunch of garbage.

Instead of fixing broken code, a user will slap -std=legacy
in a Makefile and move on.  Then years from now, you'll see
-std=legacy in a whole bunch of Makefiles whether it is needed
or not.  See -maligned-double and -fallow-argument-mismatch as
poster children.

Removing these types of extensions and legacy features
will hopefully make gfortran easier to maintain.

Again, just my $0.02.

-- 
Steve

Reply via email to