[cfe-commits] Patch: Change how struct/class mismatches are handled

Richard Trieu rtrieu at google.com
Tue Jun 7 14:18:52 PDT 2011


On Wed, Jun 1, 2011 at 4:33 PM, Douglas Gregor <dgregor at apple.com> wrote:

>
> On May 29, 2011, at 1:51 PM, Richard Trieu wrote:
>
> Made changes to how 'struct'/'class' mismatches are handled.
> - Removed fix-it hints from template instaniations since changes to the
> templates are rarely helpful.
> - Changed the caret in template instaniations from the class/struct name to the
> class/struct keyword, matching the other warnings.
> - Do not offer fix-it hints when multiple declarations disagree.  Warnings are
> still given.
> - Once a definition is found, offer a fix-it hint to all previous declarations
> with wrong tag.
> - Declarations that disagree with a previous definition will get a fix-it hint
> to change the declaration.
>
> I think this is great. I have one question:
>
> +    if (isTemplate) {
> +      Diag(NewTagLoc, diag::warn_struct_class_tag_mismatch)
> +        << (NewTag == TTK_Class)
> +        << isTemplate << &Name
> +        << FixItHint::CreateReplacement(SourceRange(NewTagLoc),
> +                                        OldTag == TTK_Class ?
> +                                        "class" : "struct");
> +      Diag(Previous->getLocation(), diag::note_previous_use);
> +      return true;
> +    }
>
> Why do we bail out early for templates, rather than treating them the same
> way as non-templates?
>
> - Doug
>
> Not really.  I thought there was some issue with it earlier, but can't
remember what it is now.  I'll test it out and see if there's any problems.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20110607/44f33be8/attachment.html>


More information about the cfe-commits mailing list