[cfe-dev] Bug 39206 - [Modules TS] Macro defined in module interface cannot be set in implementation

David Blaikie via cfe-dev cfe-dev at lists.llvm.org
Tue Nov 6 10:02:26 PST 2018


Thanks! followed up on the bug.

On Sun, Oct 21, 2018 at 7:09 PM Matt Asplund <mwasplund at gmail.com> wrote:

> +David Blaikie <dblaikie at gmail.com> Since you were discussing this with
> me before.
>
> On Sun, Oct 21, 2018 at 7:08 PM Matt Asplund <mwasplund at gmail.com> wrote:
>
>> I believe there is an inherent issue with how clang uses the precompiled
>> header structure to implement a module interface definition. When linking
>> against this module file clang brings in all of the header lookup, which I
>> can fix by forcing ModulesTS to not include the external source. However,
>> it feels like I am fighting the pcm to ignore already included files and
>> previously defined symbols that should have global module linkage. From
>> reading the spec it feels like the pcm file should ONLY contain the symbols
>> available from name lookup from module interface purview to implementation
>> purview as well as exported symbols that are imported.
>>
>> Side note: As I try to track down these issues it seems odd that
>> ModulesTS is forcing Modules to be turned on as well. Would it be easier to
>> keep Clang Modules entirely separate from ModulesTS?
>>
>> -Matt
>>
>> On Sun, Oct 21, 2018 at 5:54 PM Matt Asplund <mwasplund at gmail.com> wrote:
>>
>>> This was discussed in a separate thread, but got lost in the discussion.
>>>
>>> I am currently working on porting a legacy project over to using the new
>>> modules-ts and would hit the issue linked in *Bug 39206
>>> <https://bugs.llvm.org/show_bug.cgi?id=39206> *I could not find any
>>> explicit section of the spec that says the processor should be effected by
>>> compilation of a module, however clang seems to be hiding macros that were
>>> defined in included header files that were also included in the interface
>>> module.
>>>
>>> If this is indeed a bug I would also appreciate help pointing in the
>>> right direction in the code. I have spent some time trying to find where
>>> the actual check is occurring that is hiding macros, but am at a loss.
>>>
>>> Thanks,
>>> Matt
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181106/6599a91c/attachment.html>


More information about the cfe-dev mailing list