[PATCH] D10423: [modules] PR20507: Avoid silent textual inclusion.
Richard Smith
richard at metafoo.co.uk
Thu Jul 9 16:06:38 PDT 2015
On Thu, Jul 9, 2015 at 3:47 PM, Sean Silva <chisophugis at gmail.com> wrote:
>
>
> On Wed, Jul 8, 2015 at 12:58 PM, Ben Langmuir <blangmuir at apple.com> wrote:
>
>> benlangmuir added a comment.
>>
>> > - Added better source location.
>>
>>
>> It should really be the requirement location, but I guess we don't store
>> that anywhere. This can be improved separately.
>>
>> > - Updated testing. I renamed to auto-import-unavailable.cpp and
>> expanded testing as you asked for. Before, I was piggybacking on
>> missing-header.m and related files, but since that is a different code path
>> (and has different requirements and diagnostics), I thought it was better
>> to keep the test separate and self-contained.
>>
>> > - also emit note_implicit_top_level_module_import_here on missing
>> requirement.
>>
>>
>> Changes look good, thanks.
>>
>> I replied to your email about the issue when a "requires" clause comes
>> *after* a header declaration. I didn't actually hit that problem in the
>> wild - only in a synthetic test - so maybe it can be addressed
>> separately. If you and Richard agree, then from my perspective your patch
>> LGTM and we just need to get the Darwin hacks in before it lands.
>>
>
> This seems orthogonal. It is due to Module::markUnavailable having
> multiple bailouts that are incorrect if MissingRequirement would have been
> changed on any of the submodules during the traversal. The attached patch
> fixes that, but I think opens us up to O(n^2) behavior.
>
Can we fix that by changing the bailout condition to:
if (MissingRequirement ? !IsAvailable : IsMissingRequirement)
?
Fixing this (probably not with my simple patch attached here) seems like a
> good change, but unrelated to this patch.
>
Am I right in thinking that your patch causes regressions on valid input
without a fix to this issue?
> -- Sean Silva
>
>
>>
>> > Ben: hopefully the present patch is complete enough for you to start
>>
>> > figuring out exactly what hacks to add and where.
>>
>>
>> Definitely. I can work from this, thanks.
>>
>>
>> http://reviews.llvm.org/D10423
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150709/8c1f15fc/attachment.html>
More information about the cfe-commits
mailing list