[cfe-commits] [Patch] Handle qualifiers for template types in during template type diffing.
Richard Smith
richard at metafoo.co.uk
Tue Aug 21 20:15:47 PDT 2012
On Tue, Aug 21, 2012 at 6:59 PM, Richard Trieu <rtrieu at google.com> wrote:
> Currently, template diffing does not handle cases where the templates have
> qualifiers. This can lead to warnings such as:
>
> ... 'vector<vector<[...]>>' cannot convert to 'vector<vector<[...]>>' ...
>
> when the message means, can't convert from vector<const vector<int>> to
> vector<vector<int>>. This patch allows the internal diff tree to store the
> qualifiers for template types and adds new methods for finding the
> difference between sets of qualifiers and to print out the qualifiers.
> This does not affect non-template types as they already print qualifiers.
>
It seems inconsistent that we print:
+// CHECK-ELIDE-TREE: [const int != int]>>
... for a non-template type but...
+// CHECK-ELIDE-TREE: [const != (no qualifiers)] vector<
... for a template type. Can we use the latter form (and qualifier
highlighting) in both cases?
Examples:
> vector<const vector<int>> and vector<vector<int>>
> inline: vector<const vector<[...]>> vs. vector<(missing const)
> vector<[...]>
> tree:
> vector<
> [const != (no qualifiers)] vector<
> [...]>>
>
> vector<const vector<int>> and vector<volatile vector<int>>
> inline: vector<const (missing volatile) vector<[...]>> vs vector<volatile
> (missing const) vector<[...]>>
> tree:
> vector<
> [const != volatile] vector<
> [...]>>
>
> Highlighting is also added for the differing qualifiers.
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120821/8a780226/attachment.html>
More information about the cfe-commits
mailing list