Ping again: https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00123.html
On 11/2/17, Eric Gallager <eg...@gwmail.gwu.edu> wrote: > Ping: https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01834.html > > On 10/25/17, Eric Gallager <eg...@gwmail.gwu.edu> wrote: >> On Sat, Sep 30, 2017 at 8:05 PM, Eric Gallager <eg...@gwmail.gwu.edu> >> wrote: >>> On Fri, Sep 29, 2017 at 11:15 AM, David Malcolm <dmalc...@redhat.com> >>> wrote: >>>> On Sun, 2017-09-17 at 20:00 -0400, Eric Gallager wrote: >>>>> Attached is a version of >>>>> https://gcc.gnu.org/ml/gcc-patches/2017-05/msg00481.html that >>>>> contains >>>>> a combination of both the fix and the testcase update, as requested >>>>> in >>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81794#c2 >>>>> >>>>> I had to use a different computer than I usually use to send this >>>>> email, as the hard drive that originally had this patch is currently >>>>> unresponsive. Since it's also the one with my ssh keys on it, I can't >>>>> commit with it. Sorry if the ChangeLogs get mangled. >>>> >>>> Thanks for putting this together; sorry about the delay in reviewing >>>> it. >>>> >>>> The patch mostly looks good. >>>> >>>> Did you perform a full bootstrap and run of the testsuite with this >>>> patch? If so, it's best to state this in the email, so that we know >>>> that the patch has survived this level of testing. >>> >>> Yes, I bootstrapped with it, but I haven't done a full run of the >>> testsuite with it yet; just the one testcase I updated. >> >> Update: I've now run the testsuite with it; test results are here: >> https://gcc.gnu.org/ml/gcc-testresults/2017-10/msg01751.html >> I'm pretty sure all the FAILs are unrelated to this patch. >> >>> >>>> >>>> Some nits below: >>>> >>>>> libcpp/ChangeLog: >>>>> >>>>> 2017-03-24 Eric Gallager <eg...@gwmail.gwu.edu> >>>>> >>>>> * macro.c (check_trad_stringification): Have warning be >>>>> controlled by >>>>> -Wtraditional. >>>>> >>>>> gcc/testsuite/ChangeLog: >>>>> >>>>> 2017-09-17 Eric Gallager <eg...@gwmail.gwu.edu> >>>>> >>>>> PR preprocessor/81794 >>>>> * gcc.dg/pragma-diag-7.c: Update to include check for >>>>> stringification. >>>>> >>>>> On Sat, May 6, 2017 at 11:33 AM, Eric Gallager <eg...@gwmail.gwu.edu> >>>>> wrote: >>>>> > Pinging this: https://gcc.gnu.org/ml/gcc-patches/2017-03/msg01325.h >>>>> > tml >>>>> > >>>>> > On 3/24/17, Eric Gallager <eg...@gwmail.gwu.edu> wrote: >>>>> > > It seemed odd to me that gcc was issuing a warning about >>>>> > > compatibility >>>>> > > with traditional C that I couldn't turn off by pushing/popping >>>>> > > -Wtraditional over the problem area, so I made the attached >>>>> > > (minor) >>>>> > > patch to fix it. Survives bootstrap, but the only testing I've >>>>> > > done >>>>> > > with it has been compiling the one file that was giving me issues >>>>> > > previously, which I'd need to reduce further to turn it into a >>>>> > > proper >>>>> > > test case. >>>>> > > >>>>> > > Thanks, >>>>> > > Eric Gallager >>>>> > > >>>>> > > libcpp/ChangeLog: >>>>> > > >>>>> > > 2017-03-24 Eric Gallager <eg...@gwmail.gwu.edu> >>>>> > > >>>>> > > * macro.c (check_trad_stringification): Have warning be >>>>> > > controlled by >>>>> > > -Wtraditional. >>>>> > > >>>>> > >>>>> > So I did the reducing I mentioned above and now have a testcase for >>>>> > it; it was pretty similar to the one from here: >>>>> > https://gcc.gnu.org/ml/gcc-patches/2017-03/msg01319.html >>>>> > so I combined them into a single testcase and have attached the >>>>> > combined version. I can confirm that the testcase passes with my >>>>> > patch >>>>> > applied. >>>> >>>> [...] >>>> >>>>> diff --git a/gcc/testsuite/gcc.dg/pragma-diag-7.c >>>>> b/gcc/testsuite/gcc.dg/pragma-diag-7.c >>>>> index 402ee56..e06c410 100644 >>>>> --- a/gcc/testsuite/gcc.dg/pragma-diag-7.c >>>>> +++ b/gcc/testsuite/gcc.dg/pragma-diag-7.c >>>>> @@ -7,3 +7,16 @@ unsigned long bad = 1UL; /* { dg-warning "suffix" } >>>>> */ >>>>> /* Note the extra space before the pragma on this next line: */ >>>>> #pragma GCC diagnostic pop >>>>> unsigned long ok_again = 2UL; /* { dg-bogus "suffix" } */ >>>>> + >>>>> +/* Redundant with the previous pop, but just shows that it fails to >>>>> stop the >>>>> + * following warning with an unpatched GCC: */ >>>>> +#pragma GCC diagnostic ignored "-Wtraditional" >>>>> + >>>>> +/* { dg-bogus "would be stringified" .+1 } */ >>>> >>>> As far as I can tell, this dg-bogus line doesn't actually get matched; >>>> when I run the testsuite without the libcpp fix, I get: >>>> >>>> FAIL: gcc.dg/pragma-diag-7.c (test for excess errors) >>>> >>>> If I update the dg-bogus line to read: >>>> >>>> /* { dg-bogus "would be stringified" "" { target *-*-* } .+1 } */ >>>> >>>> then it's matched, and I get: >>>> >>>> FAIL: gcc.dg/pragma-diag-7.c (test for bogus messages, line 16) >>>> >>>> I believe that as written the ".+1" 2nd argument is interpreted as a >>>> human-readable description of the problem, rather than as a line >>>> offset; I believe you would need to add positional args for the >>>> description and filter so that the line offset is argument 4. >>>> >>>> That said, I think the dg-bogus here is unnecessary: if the warning is >>>> erroneously emitted, we get: >>>> >>>> FAIL: gcc.dg/pragma-diag-7.c (test for excess errors) >>>> >>>> (where "errors" really means "excess errors, warnings and extraneous >>>> gunk that isn't a note"). >>>> >>>> So this testcase hunk is good without the dg-bogus line. >>> >>> OK, the line can be removed when committing. >>> >>>> >>>>> +#define UNW_DEC_PROLOGUE(fmt, body, rlen, arg) \ >>>>> + do { >>>>> \ >>>>> + unw_rlen = rlen; >>>>> \ >>>>> + *(int *)arg = body; >>>>> \ >>>>> + printf(" %s:%s(rlen=%lu)\n", >>>>> \ >>>>> + fmt, (body ? "body" : "prologue"), (unsigned long)rlen); >>>>> \ >>>>> + } while (0) >>>>> diff --git a/libcpp/macro.c b/libcpp/macro.c >>>>> index de18c22..71363b5 100644 >>>>> --- a/libcpp/macro.c >>>>> +++ b/libcpp/macro.c >>>>> @@ -3316,7 +3316,7 @@ check_trad_stringification (cpp_reader *pfile, >>>>> const cpp_macro *macro, >>>>> if (NODE_LEN (node) == len >>>>> && !memcmp (p, NODE_NAME (node), len)) >>>>> { >>>>> - cpp_error (pfile, CPP_DL_WARNING, >>>>> + cpp_warning (pfile, CPP_W_TRADITIONAL, >>>>> "macro argument \"%s\" would be stringified in traditional >>>>> C", >>>>> NODE_NAME (node)); >>>>> break; >>>> >>>> This hunk looks good. >>>> >>>> So the patch is good if you drop the bogus "dg-bogus" line, provided >>>> that it's bootstrapped and regression-tested. >>>> >>>> Did you complete the FSF copyright assignment paperwork, and do you >>>> have access to the GCC compile farm? (that could help with testing) >>> >>> Yes, I have a copyright assignment on file (it was a prerequisite for >>> putting my name in the MAINTAINERS file), but no, I don't think I have >>> access to the GCC compile farm. I agree, it'd be much better to test >>> on the compile farm than on my own computer, since running the >>> testsuite on my own computer usually takes an entire day (it's really >>> old and slow). >> >> Update: I now have access to the GCC compile farm; that's where I >> produced the test results linked above. >> >>> >>>> >>>> Thanks again for working on this (and for the work you've been doing in >>>> Bugzilla); I hope you get your hard drive back... >>>> >>>> Dave >>> >>> And thank you for all your work on improving gcc's diagnostics! If >>> you'd like to send me a new hard drive, feel free to contact me >>> off-list for my mailing address. >> >> Update on hard drive status: I've ordered and received a new one, I >> just need to salvage data off the old one and then install the new one >> and then I should be good for committing again. I'd still appreciate >> if someone else could commit for me while I'm still working on fixing >> it though. > > New update on hard drive status: All data is salvaged and transferred, > but installing the new hard drive into the internal hard drive slot > didn't actually fixing the disk errors I was experiencing. It works > perfectly fine when I boot from it as an external hard drive, though, > which is what I'm doing now. So, I'm pretty sure I can commit again > now. So, OK to commit this patch? > >> >>> >>> Thanks, >>> Eric >> >