[PATCH][Modules][PR26179]
Vassil Vassilev via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 22 11:21:26 PST 2016
Thanks!
--Vassil
On 22/01/16 20:07, Yaron Keren wrote:
> Committed revision 258524.
>
>
> 2016-01-21 19:33 GMT+02:00 Vassil Vassilev via cfe-commits
> <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>>:
>
> ping... (perhaps someone else with commit rights can check it it...)
> --Vassil
>
> On 18/01/16 22:07, Vassil Vassilev wrote:
>> Thanks! Could you check it in?
>> -- Vassil
>> On 18/01/16 21:38, Richard Smith via cfe-commits wrote:
>>>
>>> LGTM
>>>
>>> On Jan 18, 2016 12:06 PM, "Vassil Vassilev" <vvasilev at cern.ch
>>> <mailto:vvasilev at cern.ch>> wrote:
>>>
>>> Attaching v3 of the patch. Added your case to the current
>>> test and fixed my silly non-array mistake.
>>> -- Vassil
>>> On 18/01/16 20:38, Richard Smith wrote:
>>>>
>>>> Please also add a test case that your old patch would have
>>>> failed on, such as:
>>>>
>>>> m1.h:
>>>> extern int a[];
>>>>
>>>> m2.h:
>>>> extern int a[5];
>>>>
>>>> x.cc:
>>>> #include "m1.h"
>>>> #include "m2.h"
>>>> int *p = a;
>>>>
>>>> On Jan 18, 2016 9:28 AM, "Vassil Vassilev"
>>>> <vvasilev at cern.ch <mailto:vvasilev at cern.ch>> wrote:
>>>>
>>>> On 17/01/16 06:34, Douglas Gregor wrote:
>>>>
>>>> On Jan 16, 2016, at 3:41 PM, Vassil Vassilev
>>>> <vvasilev at cern.ch <mailto:vvasilev at cern.ch>> wrote:
>>>>
>>>> Hi,
>>>> Could somebody review the attached patch. It
>>>> fixes https://llvm.org/bugs/show_bug.cgi?id=26179
>>>> Many thanks!
>>>> Vassil
>>>> <0001-modules-Teach-clang-to-how-to-merge-variable-redecls.patch>
>>>>
>>>>
>>>> + // We can get decls with different types on
>>>> the redecl chain. Eg.
>>>> + // template <typename T> struct S { static T
>>>> Var[]; }; // #1
>>>> + // template <typename T> T
>>>> S<T>::Var[sizeof(T)]; // #2
>>>> + // Trying to compare #1 and #2 should go
>>>> through their canonical decls.
>>>> + QualType VarXTy =
>>>> VarX->getCanonicalDecl()->getType();
>>>> + QualType VarYTy =
>>>> VarY->getCanonicalDecl()->getType();
>>>> + if (Context.hasSameType(VarXTy, VarYTy))
>>>> + return true;
>>>>
>>>> Completing an incomplete array is (I think) the
>>>> only case in which this can happen. How about
>>>> checking for that case specifically (i.e., it’s
>>>> okay to have one be an incomplete array and the
>>>> other to be any other kind of array with the same
>>>> element type), rather than a blanket check on the
>>>> canonical declaration types?
>>>>
>>>> - Doug
>>>>
>>>> Thanks for the comments. Patch v2 attached.
>>>> -- Vassil
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160122/ed6e8f68/attachment.html>
More information about the cfe-commits
mailing list