public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jason Merrill <jason@redhat.com>
To: Paolo Carlini <paolo.carlini@oracle.com>,
	"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: Re: [C++ Patch] Three additional bitfield diagnostic tweaks (a regression fix included)
Date: Thu, 06 Dec 2018 19:38:00 -0000	[thread overview]
Message-ID: <5b6d7256-1bf2-0cfd-4662-391775c8946f@redhat.com> (raw)
In-Reply-To: <87d811b1-a8df-0710-0107-67028e74d823@oracle.com>

On 12/6/18 12:23 PM, Paolo Carlini wrote:
> Hi,
> 
> On 06/12/18 16:11, Jason Merrill wrote:
>> 2- Unfortunately I have to fix another buglet I recently introduced, 
>> completely similar to c++/88222 fixed by Marek. Well, at least we will 
>> not print anymore an empty '' when the unqualified_id is null because 
>> the field is unnamed.
>>
>>> -        error_at (declarator->id_loc,
>>> -              "%qE is neither function nor member function; "
>>> -              "cannot be declared friend", unqualified_id);
>>> +        if (unqualified_id && declarator)
>>> +          error_at (declarator->id_loc,
>>> +                "%qE is neither function nor member function; "
>>> +                "cannot be declared friend", unqualified_id);
>>> +        else
>>> +          error ("unnamed field is neither function nor member "
>>> +             "function; cannot be declared friend");
>>
>> I wonder if we want to use the 'name' variable here.
> 
> Well, the name variable doesn't seem that useful here because for the 
> new testcase it has that famous catch all value "type name" .
> 
> I have been thinking that here and in other places we could imagine 
> keeping only the declarator check and dropping the "name" check. 
> Probably it would work. But in *many* existing places we actually check 
> *only* the name thus I'm nervous about attempting that now...
> 
>>
>>> 3- In the non-static case too, when from grokdeclarator we are 
>>> calling FIELD_DECL and passing the location as first argument, I 
>>> think we want to likewise pass declarator->id_loc when available.
>>
>>> -        decl = build_decl (input_location,
>>> +        decl = build_decl (declarator
>>> +                   ? declarator->id_loc
>>> +                   : input_location,
>>
>> I think we want to put this in a local variable, to share with the 
>> static case and probably other places in grokdeclarator.
> 
> In the below I'm sharing it only with the static case, straightforward. 
> Moving it one level up doesn't seem that useful because we only have 
> rather safe IMHO unconditional uses either of input_location or of 
> declarator->id_loc at the moment... Again, I'm pretty sure there is room 
> for further clean-ups in this area, but, for 9, I'd rather take care of 
> a bunch of additional small issues which I already have in my TODO list, 
> in grokbitfield, for example, as already mentioned. By the way, if isn't 
> already clear, I have been changing location bits only when I already 
> have a set of testcases, constructed from our testsuite via (lenghty ;) 
> instrumented runs.
> 
> New version of the patch attached.

OK.

Jason

      reply	other threads:[~2018-12-06 19:38 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-06 10:52 Paolo Carlini
2018-12-06 15:11 ` Jason Merrill
2018-12-06 17:23   ` Paolo Carlini
2018-12-06 19:38     ` Jason Merrill [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5b6d7256-1bf2-0cfd-4662-391775c8946f@redhat.com \
    --to=jason@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=paolo.carlini@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).