[PATCH] Allow "redefinition" of typedef of anon tag from unimported submodule

Ben Langmuir via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 13 19:29:21 PST 2015


> On Nov 13, 2015, at 5:32 PM, Ben Langmuir via cfe-commits <cfe-commits at lists.llvm.org> wrote:
> 
> 
>> On Nov 13, 2015, at 4:20 PM, Richard Smith <richard at metafoo.co.uk <mailto:richard at metafoo.co.uk>> wrote:
>> 
>> On Fri, Nov 13, 2015 at 4:03 PM, Ben Langmuir via cfe-commits <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>> wrote:
>> This time sending to the right list address.
>> 
>> Likewise =)
>> 
>> > On Nov 13, 2015, at 4:00 PM, Ben Langmuir <blangmuir at apple.com <mailto:blangmuir at apple.com>> wrote:
>> >
>> > Hey Richard,
>> >
>> > After your commit r233345 we started diagnosing “redefinition” errors for typedefs of anonymous tags that are *not visible* in case like this:
>> >
>> > module that isn’t imported:
>> >   typedef struct { … } Foo_t;
>> > source file:
>> >   typedef struct { … } Foo_t;
>> >
>> > I think the only change needed is to not consider these anonymous tags to be the same entity unless we’re in C++.  Patch attached.
>> 
>> Looks fine. Do we also miscompute the linkage for these things in C (where types don't really have linkage), or is this just a problem because we bail out before we hit the isExternallyVisible check?
> 
> 
> Ack, my copy of clang was a couple of days old and I guess you’ve been working in this area!  My patch is no longer sufficient…

Okay, committed this patch with an additional fix for the non-C++ linkage in r253123.

Thanks,

Ben

> _______________________________________________
> cfe-commits mailing list
> 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/20151113/28febff9/attachment.html>


More information about the cfe-commits mailing list