llvm-project/clang/test/Modules
Michael Spencer d3676d4b66 [clang][modules] Build inferred modules
This patch enables explicitly building inferred modules.

Effectively a cherry-pick of https://github.com/apple/llvm-project/pull/699 authored by @Bigcheese with libclang and dependency scanner changes omitted.

Contains the following changes:

1. [Clang] Fix the header paths in clang::Module for inferred modules.
  * The UmbrellaAsWritten and NameAsWritten fields in clang::Module are a lie for framework modules. For those they actually are the path to the header or umbrella relative to the clang::Module::Directory.
  * The exception to this case is for inferred modules. Here it actually is the name as written, because we print out the module and read it back in when implicitly building modules. This causes a problem when explicitly building an inferred module, as we skip the printing out step.
  * In order to fix this issue this patch adds a new field for the path we want to use in getInputBufferForModule. It also makes NameAsWritten actually be the name written in the module map file (or that would be, in the case of an inferred module).

2. [Clang] Allow explicitly building an inferred module.
  * Building the actual module still fails, but make sure it fails for the right reason.

Split from D100934.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D102491
2021-05-17 10:40:51 +02:00
..
Inputs [clang][modules] Build inferred modules 2021-05-17 10:40:51 +02:00
ASTSignature.c [NFC] Make AST_BLOCK_HASH test more robust with downstream changes 2020-06-19 09:41:15 +01:00
DebugInfo-fmodule-name.c
DebugInfoNamespace.cpp
DebugInfoSubmoduleImport.c
DebugInfoSubmodules.c
DebugInfoTransitiveImport.m [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:' 2020-06-01 09:10:05 +02:00
ExtDebugInfo.cpp [DebugInfo] Use SplitTemplateClosers (foo<bar<baz> >) in DWARF too 2020-05-28 12:30:38 +02:00
ExtDebugInfo.m Don't set the isOptimized flag in module skeleton DICompileUnits. 2020-03-20 14:18:15 -07:00
ModuleDebugInfo.cpp Reland [DebugInfo] Fix the mismatching between C++ language tags and Dwarf versions."" 2021-04-12 11:05:55 +00:00
ModuleDebugInfo.m [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:' 2020-06-01 09:10:05 +02:00
ModuleDebugInfoDwoId.cpp Reland "Correctly emit dwoIDs after ASTFileSignature refactoring (D81347)" 2020-08-24 14:52:53 +02:00
ModuleModuleDebugInfo.cpp
Rmodule-build.m
Rmodule-import.m
Werror-Wsystem-headers.m
Werror.m
add-remove-private.m
adl.cpp
anon-linkage.cpp
anon-namespace.cpp
anon-redecl.cpp
asm-goto.c Fix regex in test. 2020-09-24 15:21:28 -07:00
at-import-in-framework-header.m
attr-unavailable.m
auto-import-unavailable.cpp
auto-module-import.m Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
autolink.m
autolinkTBD.m
autoload-subdirectory.cpp
available-is-better.cpp
bad-private-include.m
build-fail-notes.m
builtin-import.mm
builtins.m
check-for-sanitizer-feature.cpp
class-extension-protocol.m
codegen-extern-template.cpp
codegen-extern-template.h
codegen-flags.test
codegen-nodep.test
codegen-opt.test [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
codegen.test [test] Fix unuses FileCheck prefixes in clang/test/Modules 2021-02-01 19:46:23 -08:00
compiler_builtins.m
compiler_builtins_aarch64.m
compiler_builtins_arm.m
compiler_builtins_x86.c
config-mismatch.cpp
config_macros.m
conflicts.m
const-var-init-update.cpp
context-hash.c [clang] Include missing LangOpts in `getModuleHash`. 2020-07-07 17:13:23 -06:00
crash-typo-correction-visibility.cpp
crash-vfs-headermaps.m
crash-vfs-include-pch.m
crash-vfs-ivfsoverlay.m
crash-vfs-path-emptydir-entries.m
crash-vfs-path-symlink-component.m
crash-vfs-path-symlink-topheader.m
crash-vfs-path-traversal.m
crash-vfs-relative-incdir.m
crash-vfs-relative-overlay.m
crash-vfs-run-reproducer.m
crash-vfs-umbrella-frameworks.m
crashes.m
cstd.m
cxx-decls.cpp
cxx-dtor.cpp
cxx-inline-namespace.cpp
cxx-irgen.cpp
cxx-linkage-cache.cpp
cxx-lookup.cpp
cxx-many-overloads.cpp
cxx-templates.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
cxx17-exception-spec.cpp
cxx17-inline-variables.cpp
cxx17.cpp Don't diagnose a redeclaration of a deduction guide if the prior 2020-06-12 10:29:01 -07:00
cxx20.cpp Don't diagnose a redeclaration of a deduction guide if the prior 2020-06-12 10:29:01 -07:00
cycles.c
darwin_specific_modulemap_hacks.m
debug-info-moduleimport-in-module.m
debug-info-moduleimport.m Allow remapping Clang module include paths 2020-03-27 14:23:30 -07:00
declare-use-compatible.cpp
declare-use.S
declare-use1.cpp
declare-use2.cpp
declare-use3.cpp
declare-use4.cpp
declare-use5.cpp
decldef.m Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
decldef.mm Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
deferred-lookup.cpp
dependency-dump-dependent-module.m
dependency-dump.m
dependency-gen-inferred-map.m
dependency-gen-pch.m
dependency-gen.m
dependency-gen.modulemap
diag-flags.cpp
diag-pragma.c
diag-pragma.cpp
diagnose-missing-import.m [test] Properly test -Werror-implicit-function-declaration and -Wvec-elem-size 2020-11-05 20:08:23 -08:00
diagnostic-options-out-of-date.m
diagnostics.modulemap [Modules] Improve error message when cannot find parent module for submodule definition. 2020-08-25 16:31:27 -07:00
diamond-pch.c
diamond.c
direct-module-import.m
double-quotes.m
driver.c
elaborated-type-specifier-from-hidden-module.m
embed-files-compressed.cpp
embed-files.cpp
empty.modulemap Fix clang/test/Modules/empty.modulemap by increasing limit. 2020-06-15 12:27:25 +01:00
enum-codegen.cpp
epic-fail.m
exception-spec.cpp
exclude-header.c
explicit-build-extra-files.cpp
explicit-build-flags.cpp
explicit-build-inferred.cpp [clang][modules] Build inferred modules 2021-05-17 10:40:51 +02:00
explicit-build-missing-files.cpp
explicit-build-overlap.cpp
explicit-build-prefer-self.cpp
explicit-build-relpath.cpp
explicit-build.cpp
exponential-paths.cpp
export_as_test.c
extensions.c
extern_c.cpp
extern_c_bad.cpp
extern_cxx.cpp
fatal-module-loader-error.m
filename.cpp
find-privateheaders.m
fmodules-validate-once-per-build-session.c
framework-name.m
framework-public-includes-private.m
friend-definition-2.cpp
friend-definition.cpp
fsystem-module.m
getSourceDescriptor-crash.cpp
global-init.cpp
global_index.m
gnumode-non-benign.cpp
header-attribs.cpp
header-import.m
header-in-multiple-maps.cpp
hidden-definition.cpp
hidden-names.cpp
ignored_macros.m
implementation-of-module.m
implicit-build-config-out-of-date.m
implicit-built-Werror-using-W.cpp
implicit-invalidate-chain.c Revert "[modules] Do not cache invalid state for modules that we attempted to load." 2020-03-10 10:59:26 -07:00
implicit-invalidate-common.c
implicit-map-dot-private.m
implicit-private-canonical.m
implicit-private-with-different-name.m
implicit-private-with-submodule.m
implicit-private-without-public.m
import-decl.cpp
import-once.m [HeaderSearch] Fix processing #import-ed headers multiple times with modules enabled. 2020-08-20 17:41:28 -07:00
import-self.m
import-syntax.c
import-textual-noguard.mm
import-textual.mm
include-own-headers.m
include-relative.c
include_next.c
incomplete-framework-module.m
incomplete-module.m
incomplete-umbrella.m [clang][module] Improve incomplete-umbrella warning 2020-09-18 14:56:47 -07:00
inferred-attributes.mm
inferred-framework-case.m
inferred-frameworks.m
inferred-submodules.m
inherit-attribute.cpp Re-land 7a527f1777 with fixes. 2020-08-21 14:40:09 -04:00
initializer_list.cpp
initializers.cpp [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
inner-struct-redefines-invisible.m
interface-diagnose-missing-import.m Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
interface-visibility.m
internal-constants.cpp
invalid-pch-module-id.m
invalidate-identifiers.c
irgen.c [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
lambda-context.cpp
libc-libcxx.cpp
libstdcxx-ambiguous-internal.cpp
linkage-merge.cpp
linkage-merge.m
load-after-failure.m
load-module-with-errors.m [ASTReader] Only mark module out of date if not already compiled 2021-04-16 17:57:03 -07:00
load_failure.c
local-visibility.cpp
localsubmodulevis.m
lookup-assert-protocol.m
lookup-assert.m
lookup.cpp
lookup.m
lsv-debuginfo.cpp
lsv-private-macro.cpp Support #__private_macro and #__public_macro in local submodule 2021-03-23 16:54:28 -07:00
macro-ambiguity.cpp
macro-hiding.cpp
macro-masking.cpp
macro-redefinition.cpp
macro-reexport.cpp
macro-undef-through-pch.m
macros.c
macros2.c
malformed-overload.m
malformed.cpp
merge-anon-in-extern_c.cpp
merge-anon-in-template.cpp
merge-class-definition-visibility.cpp
merge-decl-context.cpp
merge-decl-order.cpp
merge-deduced-return.cpp
merge-dependent-friends.cpp
merge-enumerators.cpp
merge-fn-prototype-tags.c
merge-friends.cpp
merge-function-defs.cpp
merge-implicit-special-members.cpp
merge-lambdas.cpp
merge-lifetime-extended-temporary.cpp
merge-name-for-linkage.cpp
merge-nested-templates.cpp
merge-static-locals.cpp
merge-target-features.cpp
merge-template-friend.cpp
merge-template-members.cpp
merge-template-pattern-visibility-2.cpp
merge-template-pattern-visibility-3.cpp
merge-template-pattern-visibility.cpp
merge-template-specializations.cpp
merge-typedefs.cpp
merge-using-decls.cpp
merge-var-template-def.cpp
merge-vtable-codegen.cpp
method_pool.m
method_pool_write.m
minimal-identifier-tables.cpp
mismatch-diagnostics.cpp
misplaced-1.cpp
misplaced-2.cpp
misplaced-3.cpp
misplaced-4.cpp
misplaced-5.c
missing-flag.cpp
missing-header-local-visibility.cpp When making modules transitively visible, don't take into account 2020-04-17 22:49:58 -07:00
missing-header.m
missing-submodule.m
modify-module.m
modular_maps.cpp
module-debuginfo-prefix.m
module-feature.m
module-file-modified.c
module-impl-with-link.c
module-imported-by-pch-path.m
module-imported-by-pch-with-modulemap.m
module-map-path-hash.cpp
module-name-private.m
module-private.cpp [clang] Pass the NamedDecl* instead of the DeclarationName into many diagnostics. 2020-07-28 10:30:35 +01:00
module_file_info.m [X86] Default to -mtune=generic unless -march is passed to the driver. Add TuneCPU to the AST serialization 2020-08-26 14:52:03 -07:00
module_map_cwd.c
modulemap-locations.m
modules-cache-path-canonicalization.m
modules-with-same-name.m
modules.idx
ms-enums.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
multiple-include.cpp
namespaces.cpp clang: Fix minor grammar-o in diag added in c354b2e3b 2020-08-13 10:06:40 -04:00
nested-template-default-arg-redecl.cpp
new-delete.cpp
no-implicit-builds.cpp
no-implicit-maps.cpp
no-linkage.cpp
no-module-map.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
no-stale-modtime.m
no-undeclared-includes-builtins.cpp [clang] Always allow including builtin headers in [no_undeclared_headers] modules. 2020-06-04 08:33:39 +02:00
non-ambiguous-enum.m
normal-module-map.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
objc-at-keyword.m
objc-categories.m
objc-category-2.m
objc-category-3.m
objc-category.m
objc-designated-init-mod.m
objc-hidden.m
objc-initializer.m
objc-method-redecl.m
objc-type-param.m
objc_redef.m
odr.cpp
odr_hash-Friend.cpp
odr_hash-Unresolved.cpp
odr_hash-blocks.cpp
odr_hash-elaborated-types.cpp
odr_hash-gnu.cpp
odr_hash-vector.cpp
odr_hash.cl
odr_hash.cpp
odr_hash.mm
on-demand-build.m
on-demand-macros.m
outofdate-rebuild.m
overloadable-attrs.cpp
parse-attributes.modulemap
path-resolution.modulemap
pch-module-macro.m
pch-used.m
pch-with-module-name.m
pch_container.m
pr19692.cpp
pr20399.cpp
pr20786.cpp
pr21217.cpp
pr21547.cpp
pr21687.cpp
pr24954.cpp
pr25501.cpp
pr26014.cpp
pr26179.cpp
pr27041.cpp
pr27186.cpp
pr27401.cpp
pr27513.cpp
pr27699.cpp
pr27739.cpp
pr27754.cpp
pr27890.cpp
pr28332.cpp
pr28438.cpp
pr28752.cpp
pr28812.cpp
pr31469.cpp
pragma-pack.cpp
prebuilt-implicit-modules.m Allow searching for prebuilt implicit modules. 2020-11-10 10:14:13 -08:00
prebuilt-module.m
preprocess-build-diamond.m
preprocess-build.cpp
preprocess-decluse.cpp
preprocess-missing.modulemap
preprocess-module.cpp
preprocess-nested.cpp [test] Fix unuses FileCheck prefixes in clang/test/Modules 2021-02-01 19:46:23 -08:00
preprocess-umbrella.cpp
preprocess-unavailable.cpp
preprocess.cpp
preprocess.m
private.cpp
private.modulemap
private1.cpp
protocol-redefinition.m
prune.m
public-private.modulemap
rebuild.m
recursive.c
recursive_visibility.mm
redecl-add-after-load.cpp
redecl-found-building-chains.cpp
redecl-merge.m
redecl-merge2.m
redecl-namespaces.mm
redecl-templates.cpp
redeclarations.m
redecls.m
redefinition-c-tagtypes.m
redefinition-same-header.m
redundant-include.mm
relative-dep-gen.cpp
relative-import-path.c
renamed.m
require-modular-includes.m
requires-coroutines.mm
requires-gnuinlineasm.m
requires.m
requires.mm
resolution-change.m
self-import-header.m
self-referencing-lambda.cpp
separate_map_tree.cpp
serialized-diags.m
set-pure-crash.cpp [modules] Fix crash in call to `FunctionDecl::setPure()` 2020-11-18 11:55:29 -08:00
shadow.m
shadowed-submodule.m
signal.m
static_assert.cpp
stddef.c Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
stddef.m
stress-objc.m
stress1.cpp
strict-decluse-headers.cpp
strict-decluse.cpp
string_names.cpp
structural-equivalent-recursive-types.c
subdirectory-module-maps-working-dir.m
subframework-from-intermediate-path.m
subframeworks.m Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
submodule-in-private-mmap.m
submodule-visibility-cycles.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
submodule-visibility.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
submodules-merge-defs.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
submodules-preprocess.cpp
submodules.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
submodules.m
suggest-include.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
system-out-of-date-test.m
system_headers.m
tag-injection.c Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
tag-injection.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
target-features.m
target-platform-features.m
template-default-args.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
template-specialization-visibility.cpp
templates-2.mm
templates.mm [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
textual-hdr-in-umbrella-hdr.m
textual-headers.cpp
thread-safety.cpp
typedef-tag-not-visible.m
typo.m
umbrella-header-include-builtin.mm
unavailable-local-visibility.test
undefined-type-fixit1.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
unnecessary-module-map-parsing.c
unused-global-init.cpp
update-after-load.cpp
update-exception-spec.cpp
use-after-free.m
use-exportas-for-link.m
using-decl-friend-2.cpp
using-decl-friend.cpp
using-decl-inheritance.cpp
using-decl-redecl.cpp
using-decl.cpp
using-directive-redecl.cpp
using-directive.cpp
va_list.cpp
va_list.m
validate-file-content.m
validate-system-headers.m
var-templates.cpp
visibility-in-instantiation.cpp Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
warn-unused-local-typedef.cpp
warning-mismatch.m
wildcard-submodule-exports.cpp
working-dir-flag.m