Ping yet again: https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00123.html

On 11/9/17, Eric Gallager <eg...@gwmail.gwu.edu> wrote:
> 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
>>>
>>
>

Reply via email to