Message ID | 20201028002235.928999-1-andrew@lunn.ch |
---|---|
Headers | show |
Series | net trigraph fixes for W=1 | expand |
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
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)
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
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
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.