mbox series

[net-next,0/2] net trigraph fixes for W=1

Message ID 20201028002235.928999-1-andrew@lunn.ch
Headers show
Series net trigraph fixes for W=1 | expand

Message

Andrew Lunn Oct. 28, 2020, 12:22 a.m. UTC
Both the Marvell mvneta and rose driver accidentally make use of a
trigraph. When compiling with W=1 an warning is issues because we have
trigraphs disabled. So for mvneta, which is only a diagnostic print,
remove the trigraph. For rose, since this is a sysfs file, escape the
sequence to make it clear it is not supposed to be trigraph.

Andrew Lunn (2):
  net: marvell: mvneta: Fix trigraph warning with W=1
  net: rose: Escape trigraph to fix warning with W=1

 drivers/net/ethernet/marvell/mvneta.c | 2 +-
 net/rose/af_rose.c                    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Andrew Lunn Oct. 29, 2020, 2:31 p.m. UTC | #1
On Thu, Oct 29, 2020 at 02:19:27PM +0000, David Laight wrote:
> From: Andrew Lunn
> > Sent: 28 October 2020 00:23
> > 
> > net/rose/af_rose.c: In function ‘rose_info_show’:
> > net/rose/af_rose.c:1413:20: warning: trigraph ??- ignored, use -trigraphs to enable [-Wtrigraphs]
> >  1413 |    callsign = "??????-?";
> > 
> > ??- is a trigraph, and should be replaced by a ˜ by the
> > compiler. However, trigraphs are being ignored in the build. Fix the
> > warning by escaping the ?? prefix of a trigraph.
> > 
> > Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> > ---
> >  net/rose/af_rose.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
> > index cf7d974e0f61..2c297834d268 100644
> > --- a/net/rose/af_rose.c
> > +++ b/net/rose/af_rose.c
> > @@ -1410,7 +1410,7 @@ static int rose_info_show(struct seq_file *seq, void *v)
> >  			   ax2asc(buf, &rose->dest_call));
> > 
> >  		if (ax25cmp(&rose->source_call, &null_ax25_address) == 0)
> > -			callsign = "??????-?";
> > +			callsign = "????\?\?-?";
> 
> I think I'd just split the string, eg: "?????" "-?".

Humm. I think we need a language lawyer.

Does it concatenate the strings and then evaluate for trigraphs? Or
does it evaluate for trigraphs, and then concatenate the strings?

     Andrew
David Laight Oct. 29, 2020, 2:52 p.m. UTC | #2
From: Andrew Lunn

> Sent: 29 October 2020 14:31

> On Thu, Oct 29, 2020 at 02:19:27PM +0000, David Laight wrote:

> > From: Andrew Lunn

> > > Sent: 28 October 2020 00:23

> > >

> > > net/rose/af_rose.c: In function ‘rose_info_show’:

> > > net/rose/af_rose.c:1413:20: warning: trigraph ??- ignored, use -trigraphs to enable [-Wtrigraphs]

> > >  1413 |    callsign = "??????-?";

> > >

> > > ??- is a trigraph, and should be replaced by a ˜ by the

> > > compiler. However, trigraphs are being ignored in the build. Fix the

> > > warning by escaping the ?? prefix of a trigraph.

> > >

> > > Signed-off-by: Andrew Lunn <andrew@lunn.ch>

> > > ---

> > >  net/rose/af_rose.c | 2 +-

> > >  1 file changed, 1 insertion(+), 1 deletion(-)

> > >

> > > diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c

> > > index cf7d974e0f61..2c297834d268 100644

> > > --- a/net/rose/af_rose.c

> > > +++ b/net/rose/af_rose.c

> > > @@ -1410,7 +1410,7 @@ static int rose_info_show(struct seq_file *seq, void *v)

> > >  			   ax2asc(buf, &rose->dest_call));

> > >

> > >  		if (ax25cmp(&rose->source_call, &null_ax25_address) == 0)

> > > -			callsign = "??????-?";

> > > +			callsign = "????\?\?-?";

> >

> > I think I'd just split the string, eg: "?????" "-?".

> 

> Humm. I think we need a language lawyer.

> 

> Does it concatenate the strings and then evaluate for trigraphs? Or

> does it evaluate for trigraphs, and then concatenate the strings?


I'm 99.9999% sure trigraphs are evaluated before string concatenation.

Although trigraphs are such a stupid idea I'd be tempted to just
turn the warning off.
There is good reason why they are ignored by default.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Andrew Lunn Oct. 29, 2020, 3:13 p.m. UTC | #3
On Thu, Oct 29, 2020 at 02:52:52PM +0000, David Laight wrote:
> From: Andrew Lunn

> > Sent: 29 October 2020 14:31

> > On Thu, Oct 29, 2020 at 02:19:27PM +0000, David Laight wrote:

> > > From: Andrew Lunn

> > > > Sent: 28 October 2020 00:23

> > > >

> > > > net/rose/af_rose.c: In function ‘rose_info_show’:

> > > > net/rose/af_rose.c:1413:20: warning: trigraph ??- ignored, use -trigraphs to enable [-Wtrigraphs]

> > > >  1413 |    callsign = "??????-?";

> > > >

> > > > ??- is a trigraph, and should be replaced by a ˜ by the

> > > > compiler. However, trigraphs are being ignored in the build. Fix the

> > > > warning by escaping the ?? prefix of a trigraph.

> > > >

> > > > Signed-off-by: Andrew Lunn <andrew@lunn.ch>

> > > > ---

> > > >  net/rose/af_rose.c | 2 +-

> > > >  1 file changed, 1 insertion(+), 1 deletion(-)

> > > >

> > > > diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c

> > > > index cf7d974e0f61..2c297834d268 100644

> > > > --- a/net/rose/af_rose.c

> > > > +++ b/net/rose/af_rose.c

> > > > @@ -1410,7 +1410,7 @@ static int rose_info_show(struct seq_file *seq, void *v)

> > > >  			   ax2asc(buf, &rose->dest_call));

> > > >

> > > >  		if (ax25cmp(&rose->source_call, &null_ax25_address) == 0)

> > > > -			callsign = "??????-?";

> > > > +			callsign = "????\?\?-?";

> > >

> > > I think I'd just split the string, eg: "?????" "-?".

> > 

> > Humm. I think we need a language lawyer.

> > 

> > Does it concatenate the strings and then evaluate for trigraphs? Or

> > does it evaluate for trigraphs, and then concatenate the strings?

> 

> I'm 99.9999% sure trigraphs are evaluated before string concatenation.

> 

> Although trigraphs are such a stupid idea I'd be tempted to just

> turn the warning off.

> There is good reason why they are ignored by default.


Hi Arnd

I think this trigraph issues popped up because of one of the changes
you have in your playground, adding more warnings.

What do you think of disabling the trigraph warning as well as
disabling trigraphs themselves?

	   Andrew
Arnd Bergmann Oct. 29, 2020, 3:29 p.m. UTC | #4
On Thu, Oct 29, 2020 at 4:13 PM Andrew Lunn <andrew@lunn.ch> wrote:
> On Thu, Oct 29, 2020 at 02:52:52PM +0000, David Laight wrote:

> > From: Andrew Lunn

> > > Sent: 29 October 2020 14:31

>

> I think this trigraph issues popped up because of one of the changes

> you have in your playground, adding more warnings.

>

> What do you think of disabling the trigraph warning as well as

> disabling trigraphs themselves?


The trigraph warnings are currently disabled in mainline, and trigraphs
themselves are disabled in GCC unless explicitly enabled.

My series contained a patch that changes all trigraphs by adding
'\' characters, to let us no longer disable the warning and slightly
simplify the command line:

 drivers/atm/idt77252.c                                  | 2 +-
 drivers/gpu/drm/msm/msm_rd.c                            | 2 +-
 drivers/mtd/maps/sun_uflash.c                           | 2 +-
 drivers/net/ethernet/marvell/mvneta.c                   | 2 +-
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
 drivers/s390/block/dasd_proc.c                          | 2 +-
 drivers/scsi/imm.c                                      | 4 ++--
 drivers/scsi/ppa.c                                      | 4 ++--
 drivers/tty/serial/sunsu.c                              | 2 +-
 net/rose/af_rose.c                                      | 4 ++--
 sound/isa/msnd/msnd.c                                   | 2 +-

Sorry you ran into this after you picked up the patches to the
Makefile but not my preparation patch.

I was unsure about whether this is worth changing, so I did not
send that one patch from my series and we can probably just
not drop the -Wno-trigraphs flag.

       Arnd
Jakub Kicinski Oct. 29, 2020, 9:47 p.m. UTC | #5
On Wed, 28 Oct 2020 01:22:33 +0100 Andrew Lunn wrote:
> Both the Marvell mvneta and rose driver accidentally make use of a
> trigraph. When compiling with W=1 an warning is issues because we have
> trigraphs disabled. So for mvneta, which is only a diagnostic print,
> remove the trigraph. For rose, since this is a sysfs file, escape the
> sequence to make it clear it is not supposed to be trigraph.

Feel free to resubmit, with the mentions of W=1 adjusted. 
No preference here.