llvm-project/clang/test/Modules
Bruno Cardoso Lopes 1731fc88d1 Reapply: [Modules][PCH] Hash input files content
Summary:
When files often get touched during builds, the mtime based validation
leads to different problems in implicit modules builds, even when the
content doesn't actually change:

- Modules only: module invalidation due to out of date files. Usually causing rebuild traffic.
- Modules + PCH: build failures because clang cannot rebuild a module if it comes from building a PCH.
- PCH: build failures because clang cannot rebuild a PCH in case one of the input headers has different mtime.

This patch proposes hashing the content of input files (headers and
module maps), which is performed during serialization time. When looking
at input files for validation, clang only computes the hash in case
there's a mtime mismatch.

I've tested a couple of different hash algorithms availble in LLVM in
face of building modules+pch for `#import <Cocoa/Cocoa.h>`:
- `hash_code`: performace diff within the noise, total module cache increased by 0.07%.
- `SHA1`: 5% slowdown. Haven't done real size measurements, but it'd be BLOCK_ID+20 bytes per input file, instead of BLOCK_ID+8 bytes from `hash_code`.
- `MD5`: 3% slowdown. Like above, but BLOCK_ID+16 bytes per input file.

Given the numbers above, the patch uses `hash_code`. The patch also
improves invalidation error msgs to point out which type of problem the
user is facing: "mtime", "size" or "content".

rdar://problem/29320105

Reviewers: dexonsmith, arphaman, rsmith, aprantl

Subscribers: jkorous, cfe-commits, ributzka

Tags: #clang

Differential Revision: https://reviews.llvm.org/D67249

> llvm-svn: 374841

llvm-svn: 374895
2019-10-15 14:23:55 +00:00
..
Inputs [Modules][Objective-C] Use complete decl from module when diagnosing missing import 2019-09-16 22:00:29 +00:00
DebugInfo-fmodule-name.c Relax assertion to account for private framework modules, too. 2019-02-15 20:24:26 +00:00
DebugInfoNamespace.cpp Module Debug Info: Emit namespaced C++ forward decls in the correct module. 2017-05-11 22:59:19 +00:00
DebugInfoSubmoduleImport.c Add a test that local submodule visibility has no effect on debug info 2017-05-11 16:40:48 +00:00
DebugInfoSubmodules.c
DebugInfoTransitiveImport.m Update for LLVM IR metadata changes (DIImportedEntity now needs a DIFile). 2017-07-19 00:09:58 +00:00
ExtDebugInfo.cpp Skip type units/type uniquing when we know we're only emitting the type once (vtable-based emission when triggered by a strong vtable, with -fno-standalone-debug) 2019-04-25 20:05:47 +00:00
ExtDebugInfo.m Update Clang for D20147 ("DebugInfo: New metadata representation for global variables.") 2016-09-13 01:13:19 +00:00
ModuleDebugInfo.cpp Support for DWARF-5 C++ language tags. 2019-09-24 00:38:49 +00:00
ModuleDebugInfo.m Debug Info: Set the MainFileName when generating -gmodules debug info for PCM. 2017-07-18 23:58:34 +00:00
ModuleModuleDebugInfo.cpp Add the second half of the testcase I should have added in 279485. 2016-08-22 22:30:34 +00:00
Rmodule-build.m Modules: Add -Rmodule-import 2019-03-06 02:50:46 +00:00
Rmodule-import.m Fix slashes in path references in -Rmodule-import test from r355477 2019-03-06 05:42:56 +00:00
Werror-Wsystem-headers.m
Werror.m
add-remove-private.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
adl.cpp [modules] Fix visibility checking for using declarations via ADL. 2017-10-11 01:49:57 +00:00
anon-linkage.cpp [Modules TS] Module ownership semantics for redeclarations. 2017-10-10 22:33:17 +00:00
anon-namespace.cpp
anon-redecl.cpp [modules] Additional tests. 2017-01-26 23:07:59 +00:00
at-import-in-framework-header.m Re-land Remove REQUIRES:shell from tests that pass for me on Windows 2019-09-10 20:15:45 +00:00
attr-unavailable.m
auto-import-unavailable.cpp
auto-module-import.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
autolink.m [ELF] Implement Dependent Libraries Feature 2019-05-17 03:44:15 +00:00
autolinkTBD.m IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
autoload-subdirectory.cpp Reapply r336660: [Modules] Autoload subdirectory modulemaps with specific LangOpts 2018-07-18 23:21:19 +00:00
available-is-better.cpp
bad-private-include.m [Modules] Honor -fmodule-name when handling private framework modules 2018-03-20 22:36:39 +00:00
build-fail-notes.m
builtin-import.mm [test] Use %clang_cc1 instead of %clang -cc1 2019-09-27 05:37:06 +00:00
builtins.m Re-land Remove REQUIRES:shell from tests that pass for me on Windows 2019-09-10 20:15:45 +00:00
check-for-sanitizer-feature.cpp [Driver] Add float-divide-by-zero back to supported sanitizers after D63793/rC365272 2019-07-10 00:30:02 +00:00
class-extension-protocol.m [Modules][ObjC] ASTReader should add protocols for class extensions 2018-04-27 18:01:23 +00:00
codegen-flags.test Modular Codegen: Separate flags for function and debug info support 2017-04-12 20:58:33 +00:00
codegen-nodep.test Fix up test to handle the now split -fmodules-codegen and -fmodules-debuginfo flags 2017-04-12 21:09:34 +00:00
codegen-opt.test Modular Codegen: Don't home/modularize static functions in headers 2017-11-02 21:55:40 +00:00
codegen.test Spurious commit just to help Richard, because git is weird. 2018-06-29 21:58:24 +00:00
compiler_builtins.m [Modules] Add a command line option for loading the clang builtins modulemap. 2016-10-31 08:21:54 +00:00
compiler_builtins_aarch64.m
compiler_builtins_arm.m
compiler_builtins_x86.c [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
config-mismatch.cpp Revert r288626, which reverts r288449. Original commit message: 2016-12-06 00:40:17 +00:00
config_macros.m
conflicts.m
const-var-init-update.cpp PR33002: When we instantiate the definition of a static data member, we might 2017-06-22 22:18:46 +00:00
crash-typo-correction-visibility.cpp [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
crash-vfs-headermaps.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-include-pch.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-ivfsoverlay.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-path-emptydir-entries.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-path-symlink-component.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-path-symlink-topheader.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-path-traversal.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-relative-incdir.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-relative-overlay.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-run-reproducer.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crash-vfs-umbrella-frameworks.m Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
crashes.m
cstd.m Treat module headers wrapped by our builtin headers as implicitly being textual 2016-10-26 01:08:55 +00:00
cxx-decls.cpp
cxx-dtor.cpp PR33924: merge local declarations that have linkage of some kind within 2018-07-04 02:25:38 +00:00
cxx-inline-namespace.cpp
cxx-irgen.cpp Bring r325915 back. 2018-02-23 19:30:48 +00:00
cxx-linkage-cache.cpp
cxx-lookup.cpp
cxx-many-overloads.cpp
cxx-templates.cpp PR38627: Fix handling of exception specification adjustment for 2018-09-05 22:30:37 +00:00
cxx17-exception-spec.cpp Track the result of evaluating a computed noexcept specification on the 2018-05-03 03:58:32 +00:00
cxx17-inline-variables.cpp PR33746: Store the 'inline'ness of a static data member with the update record 2017-11-02 01:06:00 +00:00
cxx17.cpp Take into account C++17's noexcept function types during merging -- it should 2017-03-08 23:00:26 +00:00
cycles.c
darwin_specific_modulemap_hacks.m
debug-info-moduleimport-in-module.m Update for LLVM IR metadata changes (DIImportedEntity now needs a DIFile). 2017-07-19 00:09:58 +00:00
debug-info-moduleimport.m Update for LLVM IR metadata changes (DIImportedEntity now needs a DIFile). 2017-07-19 00:09:58 +00: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
decldef.mm
deferred-lookup.cpp
dependency-dump-dependent-module.m Re-land Remove REQUIRES:shell from tests that pass for me on Windows 2019-09-10 20:15:45 +00:00
dependency-dump.m Re-land Remove REQUIRES:shell from tests that pass for me on Windows 2019-09-10 20:15:45 +00:00
dependency-gen-inferred-map.m
dependency-gen-pch.m
dependency-gen.m
dependency-gen.modulemap
diag-flags.cpp [modules] Fix incorrect diagnostic mapping computation when a module changes 2018-02-09 01:15:13 +00:00
diag-pragma.c
diag-pragma.cpp Remove and replace DiagStatePoint tracking and lookup data structure. 2017-01-26 01:01:01 +00:00
diagnose-missing-import.m [Modules] Fix overly conservative assertion for import diagnostic 2017-05-23 23:53:17 +00:00
diagnostic-options-out-of-date.m Modules: Use hash of PCM content for SIGNATURE 2017-03-13 18:45:08 +00:00
diagnostics.modulemap Support lazy stat'ing of files referenced by module maps. 2017-06-02 01:55:39 +00:00
diamond-pch.c
diamond.c
direct-module-import.m
double-quotes.m Switch "windows" to "system-windows" in some XFAILs 2019-09-12 11:19:12 +00:00
driver.c
elaborated-type-specifier-from-hidden-module.m [Modules] Implement ODR-like semantics for tag types in C/ObjC 2017-07-01 00:06:47 +00:00
embed-files-compressed.cpp [modules] Compress files embedded into a .pcm file, to reduce the disk usage of -fembed-all-files mode. 2016-02-06 02:06:43 +00:00
embed-files.cpp Disable a flaky test on Windows that uses "echo >>" 2016-07-21 21:07:47 +00:00
empty.modulemap Remove 24 instances of 'REQUIRES: shell' 2016-10-20 23:11:45 +00:00
enum-codegen.cpp Fix r361428 for Windows buildbots/mangling 2019-05-22 21:58:17 +00:00
epic-fail.m
exception-spec.cpp PR38627: Fix handling of exception specification adjustment for 2018-09-05 22:30:37 +00:00
exclude-header.c
explicit-build-extra-files.cpp Remove 24 instances of 'REQUIRES: shell' 2016-10-20 23:11:45 +00:00
explicit-build-flags.cpp Restructure the propagation of -fPIC/-fPIE. 2016-06-23 15:07:32 +00:00
explicit-build-missing-files.cpp [modules] Extend r266113 to cope with submodules. 2016-04-12 20:20:33 +00:00
explicit-build-overlap.cpp
explicit-build-prefer-self.cpp
explicit-build-relpath.cpp
explicit-build.cpp Fix a bug preventing the cause for a module file-not-found from being displayed 2016-08-29 20:46:59 +00:00
exponential-paths.cpp
export_as_test.c [Module map] Introduce a private module re-export directive. 2017-09-14 23:38:44 +00:00
extensions.c
extern_c.cpp
extern_c_bad.cpp
extern_cxx.cpp When we enter a module within a linkage specification, switch the linkage 2017-05-18 19:34:55 +00:00
fatal-module-loader-error.m
filename.cpp
find-privateheaders.m [Modules] Allow umbrella frameworks to define private submodules for subframeworks 2017-05-09 00:41:38 +00:00
fmodules-validate-once-per-build-session.c Allow test to pass after 2030. 2019-05-08 13:42:44 +00:00
framework-name.m [C++20] Implement context-sensitive header-name lexing and pp-import parsing in the preprocessor. 2019-04-11 21:18:23 +00:00
framework-public-includes-private.m Switch "windows" to "system-windows" in some XFAILs 2019-09-12 11:19:12 +00:00
friend-definition-2.cpp [NFC] Explicitly add -std=c++14 option to tests that rely on the C++14 default 2019-02-05 12:05:53 +00:00
friend-definition.cpp Diagnose friend function template redefinitions. 2018-12-06 09:35:04 +00:00
getSourceDescriptor-crash.cpp [modules][debuginfo] Only include imported modules when targeting LLDB 2016-05-03 23:06:40 +00:00
global-init.cpp When we reach the end of a #include of a header of a local submodule that we 2016-09-01 20:15:25 +00:00
global_index.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
gnumode-non-benign.cpp [modules] Add missing test from r297030. 2017-03-06 17:47:57 +00:00
header-attribs.cpp Support lazy stat'ing of files referenced by module maps. 2017-06-02 01:55:39 +00:00
header-import.m
header-in-multiple-maps.cpp
hidden-definition.cpp
hidden-names.cpp [modules] Additional tests. 2017-01-26 23:07:59 +00:00
ignored_macros.m
implementation-of-module.m Fix the behavior of clang's -w flag. 2019-01-29 19:33:48 +00:00
implicit-build-config-out-of-date.m [Modules] Early-exit if ReadOptionsBlock fails to avoid crashing 2016-02-11 18:54:02 +00:00
implicit-built-Werror-using-W.cpp Serialization: Simulate -Werror settings in implicit modules 2017-04-12 03:58:58 +00:00
implicit-invalidate-chain.c Fix slashes in path references in -Rmodule-import test from r355778 2019-03-09 19:33:32 +00:00
implicit-invalidate-common.c Re-land Remove REQUIRES:shell from tests that pass for me on Windows 2019-09-10 20:15:45 +00:00
implicit-map-dot-private.m [Modules] Map missing private submodules from Foo.Private to Foo_Private 2017-12-22 05:04:43 +00:00
implicit-private-canonical.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
implicit-private-with-different-name.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
implicit-private-with-submodule.m [Modules] Improve .Private fix-its to handle 'explicit' and 'framework' 2018-06-15 20:13:28 +00:00
import-decl.cpp
import-self.m [modules] Flatten -fmodule-name= and -fmodule-implementation-of= into a single 2016-02-19 22:25:36 +00:00
import-syntax.c Add pragma to perform module import and use it in -E output. 2017-04-29 00:34:47 +00:00
import-textual-noguard.mm [Modules] Support #import when entering files with modules 2017-01-11 02:14:51 +00:00
import-textual.mm [Modules] Support #import when entering files with modules 2017-01-11 02:14:51 +00:00
include-own-headers.m [modules] Don't diagnose non-modular includes from modular files that are 2016-03-14 17:52:37 +00:00
include-relative.c
include_next.c
incomplete-framework-module.m [Modules] Warning for module declarations lacking 'framework' qualifier 2018-06-01 01:26:18 +00:00
incomplete-module.m Module: improve the diagnostic message for include of non-modular header. 2016-10-21 23:27:37 +00:00
incomplete-umbrella.m [Modules] Improve diagnostics for incomplete umbrella 2017-04-27 22:29:14 +00:00
inferred-attributes.mm
inferred-framework-case.m
inferred-frameworks.m
inferred-submodules.m
initializer_list.cpp
initializers.cpp Fix bug 37903:MS ABI: handle inline static data member and inline variable as template static data member 2019-04-25 17:45:45 +00:00
inner-struct-redefines-invisible.m [modules] Set the lexical DC for dummy tag decls that refer to hidden 2017-08-11 12:06:52 +00:00
interface-diagnose-missing-import.m [Modules][Objective-C] Use complete decl from module when diagnosing missing import 2019-09-16 22:00:29 +00:00
interface-visibility.m Testcase missed from r306075. 2017-06-26 04:41:22 +00:00
internal-constants.cpp
invalid-pch-module-id.m [PCH] Fix a regression when PCH is used with -fmodules 2017-02-07 21:54:57 +00:00
invalidate-identifiers.c
irgen.c
lambda-context.cpp Lazily load the ContextDecl for a lambda's DefinitionData, to fix a 2016-08-25 00:34:00 +00:00
libc-libcxx.cpp [Modules] Add 'no_undeclared_includes' module map attribute 2016-10-21 01:41:56 +00:00
libstdcxx-ambiguous-internal.cpp
linkage-merge.cpp
linkage-merge.m
load-after-failure.m
load_failure.c
local-visibility.cpp Change return value of trivial visibility check. 2018-06-07 03:20:30 +00:00
localsubmodulevis.m [Modules] Fix test to wipe out the cache before using it 2017-04-24 21:58:13 +00:00
lookup-assert-protocol.m [ASTReader] Add test for previous change r306583 / 145692e. 2017-06-29 19:42:35 +00:00
lookup-assert.m Modules: for ObjectiveC try to keep the definition invariant. 2016-09-09 23:48:27 +00:00
lookup.cpp
lookup.m ASTPrinter: Objective-C method declarations don't need a space after 2017-06-02 15:02:59 +00:00
lsv-debuginfo.cpp Add an explicit -std=c++14 to this test. 2018-11-02 22:19:02 +00:00
macro-ambiguity.cpp
macro-hiding.cpp
macro-masking.cpp
macro-redefinition.cpp [modules] Simplify module macro handling in non-local-submodule-visibility mode. 2017-05-19 23:32:38 +00:00
macro-reexport.cpp
macro-undef-through-pch.m
macros.c
macros2.c
malformed-overload.m clang/test/Modules/malformed-overload.m: Make sure module cache is clean. 2017-04-27 13:08:48 +00:00
malformed.cpp
merge-anon-in-extern_c.cpp [modules] Add a regression test for merging anon decls in extern C contexts. 2017-10-24 14:52:35 +00:00
merge-anon-in-template.cpp
merge-class-definition-visibility.cpp
merge-decl-context.cpp [modules] Handle merged fields in designated initializers. 2016-04-08 19:57:40 +00:00
merge-decl-order.cpp
merge-deduced-return.cpp [modules] Defer merging deduced return types. 2018-08-03 01:00:01 +00:00
merge-dependent-friends.cpp
merge-enumerators.cpp
merge-fn-prototype-tags.c [modules] Apply ODR merging for function scoped tags only in C++ mode. 2016-09-08 20:34:41 +00:00
merge-friends.cpp
merge-function-defs.cpp [modules] Additional tests. 2017-01-26 23:07:59 +00:00
merge-implicit-special-members.cpp
merge-lambdas.cpp [NFC] Explicitly add -std=c++14 option to tests that rely on the C++14 default 2019-02-05 12:05:53 +00:00
merge-name-for-linkage.cpp [modules] When reading / writing a typedef that is a name for linkage for 2017-01-26 22:39:55 +00:00
merge-nested-templates.cpp
merge-static-locals.cpp PR33924: merge local declarations that have linkage of some kind within 2018-07-04 02:25:38 +00:00
merge-target-features.cpp Improve diagnostics for config mismatches with -fmodule-file. 2018-05-24 20:03:51 +00:00
merge-template-friend.cpp
merge-template-members.cpp
merge-template-pattern-visibility-2.cpp Fix tracking of merged definitions when the merge target is also merged 2018-09-12 02:13:46 +00:00
merge-template-pattern-visibility-3.cpp Track definition merging on the canonical declaration even when local 2018-09-12 23:37:00 +00:00
merge-template-pattern-visibility.cpp Revert "Reinstate r281429, reverted in r281452, with a fix for its mishandling of" 2016-10-17 13:00:44 +00:00
merge-template-specializations.cpp [modules] Be sure to emit local specializations of imported templates, even if 2016-10-06 20:30:51 +00:00
merge-typedefs.cpp
merge-using-decls.cpp [Test] NFC: Fixed typo in comments 2017-03-01 17:55:03 +00:00
merge-var-template-def.cpp [modules] Do not report missing definitions of demoted constexpr variable templates. 2016-10-19 11:19:30 +00:00
merge-vtable-codegen.cpp
method_pool.m
method_pool_write.m Method Pool in modules: we make sure that if a module contains an entry for 2016-04-29 19:04:05 +00:00
minimal-identifier-tables.cpp [modules] Separately track whether an identifier's preprocessor information and 2016-02-05 19:03:40 +00:00
mismatch-diagnostics.cpp Fix test from r346439 to also work on Windows due to path separator differences. 2018-11-09 02:44:07 +00:00
misplaced-1.cpp
misplaced-2.cpp
misplaced-3.cpp
misplaced-4.cpp
misplaced-5.c
missing-flag.cpp Reject attempts to build a module without -fmodules, rather than silently doing weird things. 2017-07-06 21:05:56 +00:00
missing-header.m
missing-submodule.m
modify-module.m Avoid assumption that lit tests are writable (in a couple more places). NFC 2018-01-09 09:32:53 +00:00
modular_maps.cpp
module-debuginfo-prefix.m Reapply "Avoid emitting redundant or unusable directories in DIFile metadata entries."" 2018-12-06 18:44:50 +00:00
module-feature.m
module-file-modified.c Module: correctly set the module file kind when emitting file_modified. 2016-10-21 23:35:03 +00:00
module-impl-with-link.c IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
module-imported-by-pch-path.m Change path used in a test from r318503 to work on windows 2017-11-17 04:26:07 +00:00
module-imported-by-pch-with-modulemap.m [PCH+Modules] Load -fmodule-map-file content before including PCHs 2018-07-19 12:32:06 +00:00
module-map-path-hash.cpp
module-name-private.m [Modules] Extend -fmodule-name semantic for frameworks with private modules 2018-02-16 00:12:57 +00:00
module-private.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
module_file_info.m [C++20] Implement context-sensitive header-name lexing and pp-import parsing in the preprocessor. 2019-04-11 21:18:23 +00:00
module_map_cwd.c Fix handling of -fmodule-map-file=X where X has no directory component. 2017-03-09 00:58:22 +00:00
modulemap-locations.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
modules-cache-path-canonicalization.m [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
modules-with-same-name.m
modules.idx
multiple-include.cpp
namespaces.cpp
nested-template-default-arg-redecl.cpp Modules: Adopt template parameters for variable templates to set their decl context correctly 2019-04-19 23:04:05 +00:00
new-delete.cpp [modules] Do not serialize / deserialize pending new/delete mismatch 2018-06-28 01:57:04 +00:00
no-implicit-builds.cpp [modules] Don't invent a module cache path unless implicit module builds are enabled. 2016-03-21 19:06:06 +00:00
no-implicit-maps.cpp
no-linkage.cpp
no-module-map.cpp [modules] Support use of -E on modules built from the command line. 2018-09-15 01:21:18 +00:00
no-stale-modtime.m [clang/test] Fix a flaky unittest on windows 2016-08-03 06:10:15 +00:00
non-ambiguous-enum.m [Modules] Fix testcases from r331232 2018-04-30 22:57:02 +00:00
normal-module-map.cpp
objc-at-keyword.m [Lexer] Ensure that the token is not an annotation token when 2017-05-17 11:08:36 +00:00
objc-categories.m [ObjC][Modules] Don't perform property lookup in hidden class extensions 2017-02-22 23:18:49 +00:00
objc-category-2.m Modules: for ObjectiveC try to keep the definition invariant. 2016-09-09 23:48:27 +00:00
objc-category-3.m Modules: for ObjectiveC try to keep the definition invariant. 2016-09-09 23:48:27 +00:00
objc-category.m Modules: for ObjectiveC try to keep the definition invariant. 2016-09-09 23:48:27 +00:00
objc-designated-init-mod.m [Modules][ObjC] Check definition from canonical decl on designated initializers 2017-04-26 05:06:20 +00:00
objc-hidden.m Module: for ObjectiveC, be consistent when checking hidden decls. 2016-10-11 21:18:20 +00:00
objc-initializer.m Module: emit initializers in submodules when importing the parent module. 2016-10-14 18:55:44 +00:00
objc-method-redecl.m ObjectiveC: fix a seg fault when deserialing redeclaration of ObjCMethodDecl. 2016-10-03 21:26:46 +00:00
objc_redef.m
odr.cpp [AST] Incorrectly qualified unscoped enumeration as template actual parameter. 2017-12-21 21:47:22 +00:00
odr_hash-Friend.cpp Remove unnecessary options from test RUN lines. 2018-09-05 22:14:46 +00:00
odr_hash-Unresolved.cpp Test case for r321396 2018-01-06 03:20:59 +00:00
odr_hash-blocks.cpp [ODRHash] Extend hash to support all Type's. 2018-09-04 22:53:19 +00:00
odr_hash-elaborated-types.cpp [ODRHash] Do not rely on Type* when computing the hash. 2018-06-28 13:28:44 +00:00
odr_hash-gnu.cpp Remove unnecessary options from test RUN lines. 2018-09-05 22:14:46 +00:00
odr_hash-vector.cpp [ODRHash] Extend hash to support all Type's. 2018-09-04 22:53:19 +00:00
odr_hash.cl [ODRHash] Extend hash to support all Type's. 2018-09-04 22:53:19 +00:00
odr_hash.cpp [ODRHash] Skip some typedef types. 2019-06-22 00:32:19 +00:00
odr_hash.mm [ODRHash] Fix null pointer dereference for ObjC selectors with empty slots. 2019-06-28 17:42:17 +00:00
on-demand-build.m
on-demand-macros.m
outofdate-rebuild.m Modules: Rename MemoryBufferCache to InMemoryModuleCache 2019-03-09 17:33:56 +00:00
overloadable-attrs.cpp Represent pass_object_size attrs in ExtParameterInfo 2017-02-24 02:49:47 +00:00
parse-attributes.modulemap [Modules] Don't swallow errors when parsing optional attributes. 2016-03-06 04:20:05 +00:00
path-resolution.modulemap Fix incorrect use of current directory to find moved paths in ASTReader. 2017-07-25 10:22:06 +00:00
pch-module-macro.m PCH + module: make sure we write out macros associated with builtin identifiers. 2016-05-31 18:19:32 +00:00
pch-used.m
pch-with-module-name.m PCH: fix a regression that reports a module is defined in both pch and pcm. 2017-01-09 19:20:18 +00:00
pch_container.m [Clang] Rename -split-dwarf-file to -split-dwarf-output 2019-06-15 14:07:43 +00:00
pr19692.cpp
pr20399.cpp
pr20786.cpp
pr21217.cpp
pr21547.cpp Add -emit-llvm-only to the regression test for PR21547. 2016-03-30 22:22:50 +00:00
pr21687.cpp
pr24954.cpp [modules] Fix adding a templated friend functions to a namespace from another module. 2016-03-16 11:17:04 +00:00
pr25501.cpp PR25501: Delay loading visible updates for a declaration until after we've 2016-04-08 20:53:26 +00:00
pr26014.cpp Canonicalize UnaryTransformType types when they don't have a known underlying type. 2016-03-30 22:18:29 +00:00
pr26179.cpp
pr27041.cpp [modules] Write out identifiers if the ID is local, too. 2016-03-30 20:16:03 +00:00
pr27186.cpp [modules] Add forgotten test case to r265597. 2016-04-06 20:58:12 +00:00
pr27401.cpp PR33924: merge local declarations that have linkage of some kind within 2018-07-04 02:25:38 +00:00
pr27513.cpp PR27513: When determining which declaration to put into an exported lookup 2016-04-26 23:40:43 +00:00
pr27699.cpp Add regression test for PR27699. 2016-07-22 20:49:31 +00:00
pr27739.cpp [modules] Ask the canonical decl whether the constructor was defaulted. 2016-05-24 12:10:36 +00:00
pr27754.cpp PR27754: CXXRecordDecl::data() needs to perform an update even if it's called 2016-05-17 22:44:15 +00:00
pr27890.cpp [modules] Allow emission of update records for predefined __va_list_tag. 2016-06-20 15:10:40 +00:00
pr28332.cpp [modules] Teach the ASTWriter to ignore mutations coming from the ASTReader. 2016-07-22 21:08:24 +00:00
pr28438.cpp Remove debugging aids from this test and fix its expectations. 2016-08-18 06:15:19 +00:00
pr28752.cpp Reinstate r284008 reverted in r284081, with two fixes: 2016-10-14 21:41:24 +00:00
pr28812.cpp [modules] PR28812: Modules can return duplicate field decls. 2016-10-26 10:24:29 +00:00
pr31469.cpp PR31469: Don't add friend template class decls to redecl chain in dependent contexts. 2017-01-12 09:16:26 +00:00
pragma-pack.cpp Modules: Do not serialize #pragma pack state 2017-04-15 00:07:57 +00:00
prebuilt-module.m clang/test/Modules/prebuilt-module.m: Prune "-triple" to fix a configuration mismatch. 2016-08-19 05:25:26 +00:00
preprocess-build-diamond.m Add -frewrite-imports flag. 2017-06-09 21:24:02 +00:00
preprocess-build.cpp Reject attempts to build a module without -fmodules, rather than silently doing weird things. 2017-07-06 21:05:56 +00:00
preprocess-decluse.cpp Track the set of module maps read while building a .pcm file and reload those when preprocessing from that .pcm file. 2017-06-29 02:19:42 +00:00
preprocess-missing.modulemap Support lazy stat'ing of files referenced by module maps. 2017-06-02 01:55:39 +00:00
preprocess-module.cpp make -frewrite-includes also rewrite conditions in #if/#elif 2019-09-18 19:09:41 +00:00
preprocess-nested.cpp [modules] When compiling a preprocessed module map, look for headers relative 2017-05-31 20:56:55 +00:00
preprocess-umbrella.cpp Fix buildbot break after r360195 2019-05-08 02:03:32 +00:00
preprocess-unavailable.cpp Add an explicit -std= to test to unbreak on PS4 targets. 2017-05-30 20:13:34 +00:00
preprocess.cpp Add pragma to perform module import and use it in -E output. 2017-04-29 00:34:47 +00:00
preprocess.m Add pragma to perform module import and use it in -E output. 2017-04-29 00:34:47 +00:00
private.cpp
private.modulemap
private1.cpp
protocol-redefinition.m Add protocol redefinition to the current scope/context 2018-06-30 00:49:27 +00:00
prune.m [test] Disable Modules/prune.m on NetBSD as it requires 'touch -a' 2018-12-05 11:17:50 +00:00
public-private.modulemap
rebuild.m Modules: Use hash of PCM content for SIGNATURE 2017-03-13 18:45:08 +00:00
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 [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
redefinition-same-header.m [Modules] Implement ODR-like semantics for tag types in C/ObjC 2017-07-01 00:06:47 +00:00
redundant-include.mm Additional test file missed from r288737. 2016-12-06 00:14:22 +00:00
relative-dep-gen.cpp Print correctly dependency paths on Windows 2018-09-13 14:27:32 +00:00
relative-import-path.c Remove an unnecessary -f when cp'ing to a file that was just deleted. NFC. 2019-03-11 10:44:10 +00:00
renamed.m
require-modular-includes.m
requires-coroutines.mm [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
requires-gnuinlineasm.m Factor out and unify emission of "module is unavailable" diagnostics. 2017-06-05 18:57:56 +00:00
requires.m [Modules] Add more language features to be used with requires-declaration 2018-02-14 19:01:03 +00:00
requires.mm [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
resolution-change.m [Modules] Do not emit relocation error when -fno-validate-pch is set 2018-08-01 09:50:02 +00:00
self-import-header.m
self-referencing-lambda.cpp [Modules] Update test to mention it requires C++14. 2018-03-23 00:16:06 +00:00
separate_map_tree.cpp
serialized-diags.m
shadow.m Reapply r321781: [Modules] Allow modules specified by -fmodule-map-file to shadow implicitly found ones 2018-01-05 02:33:18 +00:00
shadowed-submodule.m Reapply r321781: [Modules] Allow modules specified by -fmodule-map-file to shadow implicitly found ones 2018-01-05 02:33:18 +00:00
signal.m Remove 24 instances of 'REQUIRES: shell' 2016-10-20 23:11:45 +00:00
static_assert.cpp Fix interaction between serialization and c++1z feature. 2016-09-13 01:20:40 +00:00
stddef.c
stddef.m
stress-objc.m ObjC Module: try to make objc module deterministic. 2016-11-17 18:41:18 +00:00
stress1.cpp
strict-decluse-headers.cpp Reapply "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX" 2018-11-05 12:46:02 +00:00
strict-decluse.cpp
string_names.cpp Support non-identifier module names when preprocessing modules. 2017-06-19 23:09:36 +00:00
subdirectory-module-maps-working-dir.m [HeaderSearch] loadSubdirectoryModuleMaps should respect -working-directory 2018-11-14 01:08:03 +00:00
subframework-from-intermediate-path.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
subframeworks.m [Modules] Change private modules rules and warnings 2017-12-22 02:53:30 +00:00
submodule-in-private-mmap.m [Modules] Allow @import to reach submodules in private module maps 2018-05-02 02:25:03 +00:00
submodule-visibility-cycles.cpp
submodule-visibility.cpp [modules] When creating a declaration, cache its owning module immediately 2017-05-17 00:24:14 +00:00
submodules-merge-defs.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
submodules-preprocess.cpp
submodules.cpp
submodules.m
suggest-include.cpp [modules] When diagnosing a missing module import, suggest adding a #include if 2016-04-27 21:57:05 +00:00
system-out-of-date-test.m Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
system_headers.m
tag-injection.c
tag-injection.cpp
target-features.m [PATCH] [RISCV] Extend getTargetDefines for RISCVTargetInfo 2018-04-05 12:54:00 +00:00
target-platform-features.m [Modules] Add platform and environment features to requires clause 2018-09-18 17:11:13 +00:00
template-default-args.cpp [modules] Properly look up the owning module for an instantiation of a merged template. 2017-04-21 01:15:13 +00:00
template-specialization-visibility.cpp
templates-2.mm
templates.mm [opaque pointer types] Cleanup CGBuilder's Create*GEP. 2019-02-08 15:34:12 +00:00
textual-hdr-in-umbrella-hdr.m [Modules] Fix misleading warning about missing textual header in umbrella header 2017-01-12 19:15:33 +00:00
textual-headers.cpp
thread-safety.cpp
typedef-tag-not-visible.m
typo.m Fix CodeCompletion & TypoCorrection when combining a PCH with Modules 2016-05-04 00:53:13 +00:00
umbrella-header-include-builtin.mm [test] Use %clang_cc1 instead of %clang -cc1 2019-09-27 05:37:06 +00:00
unavailable-local-visibility.test When we leave a module header, make that header visible in its 2018-09-12 23:09:23 +00:00
undefined-type-fixit1.cpp
unnecessary-module-map-parsing.c
unused-global-init.cpp [modules] Don't emit initializers for VarDecls within a module eagerly whenever 2016-07-20 19:10:16 +00:00
update-after-load.cpp
update-exception-spec.cpp
use-after-free.m Modules: set SystemHeader to true if we are building a system module. 2016-05-17 02:15:12 +00:00
use-exportas-for-link.m Use export_as for autolinking frameworks 2018-04-16 19:42:32 +00:00
using-decl-friend-2.cpp Serialize the IDNS for a UsingShadowDecl rather than recomputing it. 2018-01-06 01:07:05 +00:00
using-decl-friend.cpp When name lookup finds a non-imported declaration and looks back along the 2018-01-06 00:09:23 +00:00
using-decl-inheritance.cpp [modules] Add test for using declaration in classes. 2017-08-29 09:27:41 +00:00
using-decl-redecl.cpp
using-decl.cpp
using-directive-redecl.cpp [modules] Retain multiple using-directives in the same scope even if they name the same namespace. 2017-10-30 22:38:20 +00:00
using-directive.cpp [modules] Only take visible using-directives into account during name lookup. 2017-10-11 01:19:11 +00:00
va_list.cpp
va_list.m
validate-file-content.m Reapply: [Modules][PCH] Hash input files content 2019-10-15 14:23:55 +00:00
validate-system-headers.m
var-templates.cpp Use an even more precise triple to avoid errors on Darwin, where we don't use comdats for inline entities. 2017-12-05 21:29:36 +00:00
visibility-in-instantiation.cpp [modules] When finding the owning module of an instantiated context in template 2017-10-18 01:41:38 +00:00
warn-unused-local-typedef.cpp
warning-mismatch.m Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
wildcard-submodule-exports.cpp
working-dir-flag.m