r310605 - [Modules] Prevent #import to reenter header if not building a module.

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 10 10:42:22 PDT 2017


Sounds good to me.

Richard, what do you think?

On Thu, Aug 10, 2017 at 9:38 AM, Bruno Cardoso Lopes
<bruno.cardoso at gmail.com> wrote:
> Hi Hans, can we please get this merged into 5.0?
>
> Thanks,
>
> On Thu, Aug 10, 2017 at 12:16 PM, Bruno Cardoso Lopes via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>> Author: bruno
>> Date: Thu Aug 10 08:16:24 2017
>> New Revision: 310605
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=310605&view=rev
>> Log:
>> [Modules] Prevent #import to reenter header if not building a module.
>>
>> When non-modular headers are imported while not building a module but
>> in -fmodules mode, be conservative and preserve the default #import
>> semantic: do not reenter headers.
>>
>> rdar://problem/33745031
>>
>> Added:
>>     cfe/trunk/test/Modules/Inputs/import-textual/x.h
>>     cfe/trunk/test/Modules/import-textual-nomodules.m
>> Modified:
>>     cfe/trunk/lib/Lex/HeaderSearch.cpp
>>
>> Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/HeaderSearch.cpp?rev=310605&r1=310604&r2=310605&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Lex/HeaderSearch.cpp (original)
>> +++ cfe/trunk/lib/Lex/HeaderSearch.cpp Thu Aug 10 08:16:24 2017
>> @@ -1143,7 +1143,7 @@ bool HeaderSearch::ShouldEnterIncludeFil
>>      // headers find in the wild might rely only on #import and do not contain
>>      // controlling macros, be conservative and only try to enter textual headers
>>      // if such macro is present.
>> -    if (!FileInfo.isModuleHeader &&
>> +    if (FileInfo.isCompilingModuleHeader && !FileInfo.isModuleHeader &&
>>          FileInfo.getControllingMacro(ExternalLookup))
>>        TryEnterHdr = true;
>>      return TryEnterHdr;
>>
>> Added: cfe/trunk/test/Modules/Inputs/import-textual/x.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/import-textual/x.h?rev=310605&view=auto
>> ==============================================================================
>> --- cfe/trunk/test/Modules/Inputs/import-textual/x.h (added)
>> +++ cfe/trunk/test/Modules/Inputs/import-textual/x.h Thu Aug 10 08:16:24 2017
>> @@ -0,0 +1,6 @@
>> +#ifndef RANDOM_DEP
>> +
>> + at interface X
>> + at end
>> +
>> +#endif // RANDOM_DEP
>>
>> Added: cfe/trunk/test/Modules/import-textual-nomodules.m
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/import-textual-nomodules.m?rev=310605&view=auto
>> ==============================================================================
>> --- cfe/trunk/test/Modules/import-textual-nomodules.m (added)
>> +++ cfe/trunk/test/Modules/import-textual-nomodules.m Thu Aug 10 08:16:24 2017
>> @@ -0,0 +1,8 @@
>> +// RUN: rm -rf %t
>> +// RUN: %clang_cc1 -fsyntax-only -fmodules -fimplicit-module-maps -I%S/Inputs/import-textual -fmodules-cache-path=%t %s -verify
>> +
>> +// expected-no-diagnostics
>> +
>> +#import "x.h"
>> +#import "x.h"
>> +
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
>
> --
> Bruno Cardoso Lopes
> http://www.brunocardoso.cc


More information about the cfe-commits mailing list