forked from llvm-mirror/clang
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Don't diagnose non-modular includes when we are not compiling a module.
This is triggered when we are compiling an implementation of a module, it has relative includes to a VFS-mapped module with umbrella headers. Currently we will find the real path to headers under the umbrella directory, but the umbrella directories are using virtual path. rdar://27951255 Thanks Ben and Richard for reviewing the patch! Differential Revision: http://reviews.llvm.org/D23858 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279838 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
1 parent
216f664
commit 5423d8c
Showing
7 changed files
with
62 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
// A.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
framework module Nonmodular [extern_c] { | ||
umbrella header "umbrella.h" | ||
export * | ||
module * { export * } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
{ | ||
'version': 0, | ||
'case-sensitive': 'false', | ||
'ignore-non-existent-contents': 'true', | ||
'roots': [ | ||
{ | ||
'type': 'directory', | ||
'name': "VDIR/Nonmodular.framework/Headers", | ||
'contents': [ | ||
{ | ||
'type': 'file', | ||
'name': "umbrella.h", | ||
'external-contents': "IN_DIR/Inputs/Nonmodular/umbrella.h" | ||
}, | ||
{ | ||
'type': 'file', | ||
'name': "A.h", | ||
'external-contents': "IN_DIR/Inputs/Nonmodular/A.h" | ||
} | ||
] | ||
}, | ||
{ | ||
'type': 'directory', | ||
'name': "VDIR/Nonmodular.framework/Modules", | ||
'contents': [ | ||
{ | ||
'type': 'file', | ||
'name': "module.modulemap", | ||
'external-contents': "OUT_DIR/module.modulemap" | ||
} | ||
] | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
// expected-no-diagnostics | ||
|
||
#include "umbrella.h" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#ifndef __umbrella_h__ | ||
#define __umbrella_h__ | ||
|
||
#include <Nonmodular/A.h> | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
// REQUIRES: shell | ||
|
||
// RUN: rm -rf %t | ||
// RUN: mkdir -p %t/vdir %t/cache %t/outdir | ||
// We can't have module.map inside Inputs/Nonmodular. | ||
// RUN: cp %S/Inputs/Nonmodular/Nonmodular.modulemap %t/outdir/module.modulemap | ||
// | ||
// RUN: sed -e "s:VDIR:%t/vdir:g" -e "s:IN_DIR:%S:g" -e "s:OUT_DIR:%t/outdir:g" %S/Inputs/Nonmodular/nonmodular-headers.yaml > %t/vdir/nonmodular-headers.yaml | ||
// RUN: %clang_cc1 -fmodule-name=Nonmodular -fmodules -Wnon-modular-include-in-framework-module -verify -fimplicit-module-maps -fmodules-cache-path=%t/cache -ivfsoverlay %t/vdir/nonmodular-headers.yaml -I %S/Inputs -F %t/vdir -fsyntax-only %S/Inputs/Nonmodular/test.c | ||
|
||
// expected-no-diagnostics |