On Wed, Jul 8, 2015 at 2:05 PM, Richard Smith <[email protected]> wrote:

> rsmith added inline comments.
>
> ================
> Comment at: lib/Lex/PPDirectives.cpp:1665
> @@ +1664,3 @@
> +  // unavailable, diagnose the situation and bail out.
> +  if (SuggestedModule && !SuggestedModule.getModule()->isAvailable()) {
> +    clang::Module::Requirement Requirement;
> ----------------
> I think this whole block should be moved down to line 1761 or so:
>
>  1. The code currently ensures that it always calls InclusionDirective on
> the callback object for every `#include`, even if that include fails.
>

I don't think this is true. There is at least one return above it in the
block `// We hit an error processing the import. Bail out.`.


>  2. We don't yet know that the file is actually part of `SuggestedModule`;
> it could be in the directory of an umbrella header whose module is
> unavailable, but it might not be part of that module.
>

Sounds like a bug in the thing suggesting SuggestedModule? Or am I not
understanding what the contract is for SuggestedModule? If I'm
understanding what you're saying, it sounds like this is wholly not the
correct place to check this.


>  3. If we somehow got a suggested module but no file, we should not
> produce additional spurious diagnostics beyond the "file not found"
> diagnostic we already produced.
>

Is that actually possible? Sounds like a broken invariant.

-- Sean Silva


>
> ================
> Comment at: test/Modules/Inputs/auto-import-unavailable/module.modulemap:9
> @@ +8,3 @@
> +    requires nonexistent_feature
> +    header "nonrequired_missing_header/missing.h"
> +  }
> ----------------
> Please add some content to the empty files (even if just a comment) or
> this test will misbehave on content-addressed file systems, where all the
> empty files will be treated as the same file.
>
>
> http://reviews.llvm.org/D10423
>
>
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to