llvm-project/clang/test/Modules
Iain Sandoe 85b1354098 [C++20][Modules][HU 5/5] Add fdirectives-only mode for preprocessing output.
When the -fdirectives-only option is used together with -E, the preprocessor
output reflects evaluation of if/then/else directives.

As such, it preserves defines and undefs of macros that are still live after
such processing.  The intent is that this output could be consumed as input
to generate considered a C++20 header unit.

We strip out any (unused) defines that come from built-in, built-in-file or
command line; these are re-added when the preprocessed source is consumed.

Differential Revision: https://reviews.llvm.org/D121099
2022-03-28 07:38:22 +01:00
..
Inputs [clang][modules] NFC: Simplify and clarify test 2022-03-07 10:47:46 +01:00
ASTSignature.c
DebugInfo-fmodule-name.c
DebugInfoNamespace.cpp
DebugInfoSubmoduleImport.c [AIX] Disable tests failing due to missing DWARF sections 2021-10-08 12:06:38 -04:00
DebugInfoSubmodules.c
DebugInfoTransitiveImport.m
ExtDebugInfo.cpp
ExtDebugInfo.m
ModuleDebugInfo.cpp Emit the C++ dialect in -gmodules .pcm files. 2022-01-10 16:13:40 -08:00
ModuleDebugInfo.m [AIX][ZOS] Disable tests due to lack of Objective-C support 2021-10-25 23:32:13 -04:00
ModuleDebugInfoDwoId.cpp
ModuleModuleDebugInfo.cpp
Rmodule-build.m
Rmodule-import.m
Werror-Wsystem-headers.m
Werror.m
add-remove-irrelevant-module-map.m [clang][modules] Fix failing test 2022-03-07 11:21:21 +01:00
add-remove-private.m
adl.cpp
anon-linkage.cpp
anon-namespace.cpp
anon-redecl.cpp
asm-goto.c [clang][CGStmt] emit i constraint rather than X for asm goto indirect dests 2022-01-11 11:48:40 -08:00
at-import-in-framework-header.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
attr-unavailable.m
auto-import-unavailable.cpp
auto-module-import.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
autolink.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
autolinkTBD.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
autoload-subdirectory.cpp
available-is-better.cpp
bad-private-include.m
build-fail-notes.m
builtin-import.mm
builtins.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
check-for-sanitizer-feature.cpp
clang_module_file_info.m [AIX][ZOS] Disable tests due to lack of Objective-C support 2021-10-25 23:32:13 -04:00
class-extension-protocol.m
codegen-extern-template.cpp [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default 2022-01-16 18:54:17 +09:00
codegen-extern-template.h
codegen-flags.test
codegen-nodep.test
codegen-opt.test
codegen.test [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default 2022-01-16 18:54:17 +09:00
compiler_builtins.m
compiler_builtins_aarch64.m
compiler_builtins_arm.m
compiler_builtins_x86.c
concept.cppm [NFC] Use %clang_cc instead of %clang in c++20 module tests 2021-12-22 11:50:47 +08:00
config-mismatch.cpp
config_macros.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
conflicts.m
const-var-init-update.cpp
context-hash.c
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
cxx-decls.cpp
cxx-dtor.cpp
cxx-inline-namespace.cpp
cxx-irgen.cpp [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default 2022-01-16 18:54:17 +09:00
cxx-linkage-cache.cpp
cxx-lookup.cpp
cxx-many-overloads.cpp
cxx-templates.cpp Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
cxx17-exception-spec.cpp
cxx17-inline-variables.cpp
cxx17.cpp
cxx20-10-1-ex1.cpp [C++20][Modules][4/8] Handle generation of partition implementation CMIs. 2022-02-25 09:33:14 +00:00
cxx20-10-1-ex2.cpp [C++20][Modules][8/8] Amend module visibility rules for partitions. 2022-03-01 08:29:05 +00:00
cxx20-10-3-ex1.cpp [C++20][Modules][5/8] Diagnose wrong import/export for partition CMIs. 2022-02-26 11:27:08 +00:00
cxx20-10-3-ex2.cpp [C++20][Modules][5/8] Diagnose wrong import/export for partition CMIs. 2022-02-26 11:27:08 +00:00
cxx20-disable.cpp
cxx20-export-import.cpp [clang][sema] Add missing diagnostic parameter 2022-01-24 09:59:20 +01:00
cxx20-hu-01.cpp [C++20][Modules][HU 1/5] Introduce header units as a module type. 2022-03-25 09:17:14 +00:00
cxx20-hu-02.cpp [C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths. 2022-03-26 10:17:17 +00:00
cxx20-hu-03.cpp [C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths. 2022-03-26 10:17:17 +00:00
cxx20-hu-04.cpp [C++20][Modules][HU 3/5] Emit module macros for header units. 2022-03-26 16:30:40 +00:00
cxx20-hu-05.cpp [C++20][Modules][HU 4/5] Handle pre-processed header units. 2022-03-27 09:38:06 +01:00
cxx20-hu-06.cpp [C++20][Modules][HU 5/5] Add fdirectives-only mode for preprocessing output. 2022-03-28 07:38:22 +01:00
cxx20-hu-bad-input.cpp [C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths. 2022-03-26 10:17:17 +00:00
cxx20-import-diagnostics-a.cpp [C++20][Modules][5/8] Diagnose wrong import/export for partition CMIs. 2022-02-26 11:27:08 +00:00
cxx20-module-file-info.cpp [Modules] Add module structure output to -module-file-info. 2022-02-23 10:26:42 +00:00
cxx20-multiple-partitions.cpp [C++20][Modules][3/8] Initial handling for module partitions. 2022-02-24 09:01:09 +00:00
cxx20-partition-diagnostics-a.cpp [C++20][Modules][3/8] Initial handling for module partitions. 2022-02-24 09:01:09 +00:00
cxx20.cpp
cycles.c
darwin_specific_modulemap_hacks.m
debug-info-moduleimport-in-module.m [AIX][ZOS] Disable tests due to lack of Objective-C support 2021-10-25 23:32:13 -04:00
debug-info-moduleimport.m
declare-use-compatible.cpp
declare-use.S
declare-use1.cpp
declare-use2.cpp
declare-use3.cpp
declare-use4.cpp
declare-use5.cpp
decldef.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
decldef.mm [modules] Fix tracking ObjCInterfaceType decl when there are multiple definitions. 2021-10-21 12:08:06 -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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
diagnostic-options-out-of-date.m
diagnostics.modulemap
diamond-pch.c
diamond.c
direct-module-import.m
double-quotes.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
driver.c
elaborated-type-specifier-from-hidden-module.m
embed-files-compressed.cpp
embed-files.cpp
empty.modulemap
enum-codegen.cpp
epic-fail.m
exception-spec.cpp
exclude-header.c
explicit-build-diags.cpp
explicit-build-extra-files.cpp
explicit-build-flags.cpp
explicit-build-inferred.cpp [clang][modules] Infer framework modules in explicit builds 2022-02-23 14:46:23 +01: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-in-non-modules.cpp [C++20] [Modules] Exit early if export decl is not valid 2022-01-14 10:21:42 +08:00
export_as_test.c
extensions.c
extern_c.cpp Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
extern_c_bad.cpp
extern_cxx.cpp
fatal-module-loader-error.m
filename.cpp
find-privateheaders.m
fmodules-validate-once-per-build-session.c [modules] Make a module map referenced by a system map a system one too. 2021-10-15 12:46:51 -07:00
framework-name.m [NFC][Clang][test] Inclusive language: Remove and rephrase uses of sanity test/check in clang/test 2021-11-24 14:03:49 -05:00
framework-public-includes-private.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
friend-definition-2.cpp
friend-definition.cpp
fsystem-module.m
getSourceDescriptor-crash.cpp
global-init.cpp
global_index.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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
implicit-invalidate-common.c
implicit-map-dot-private.m
implicit-module-with-missing-path.cpp [C++20] [Modules] Check if modulemap exists to avoid crash in implicit used C++ module 2022-02-11 11:22:50 +08:00
implicit-modules-use-lock.m
implicit-private-canonical.m
implicit-private-with-different-name.m
implicit-private-with-submodule.m
implicit-private-without-public.m
import-decl.cpp Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
import-once.m
import-self.m
import-syntax.c
import-textual-noguard.mm
import-textual.mm
include-own-headers.m
include-relative.c Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
include_next.c
incomplete-framework-module.m
incomplete-module.m
incomplete-umbrella.m
inferred-attributes.mm
inferred-framework-case.m
inferred-frameworks.m
inferred-submodules.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
inherit-attribute.cpp
initializer_list.cpp
initializers.cpp [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default 2022-01-16 18:54:17 +09:00
inner-struct-redefines-invisible.m
interface-diagnose-missing-import.m [modules] Fix tracking ObjCInterfaceType decl when there are multiple definitions. 2021-10-21 12:08:06 -07:00
interface-visibility.m
internal-constants.cpp
invalid-pch-module-id.m
invalidate-identifiers.c
irgen.c
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
load_failure.c
local-visibility.cpp
localsubmodulevis.m
lookup-assert-protocol.m
lookup-assert.m
lookup.cpp
lookup.m [clang][objc] Speed up populating the global method pool from modules. 2021-11-03 17:11:14 -07:00
lsv-debuginfo.cpp DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes 2021-11-01 17:08:26 -07:00
lsv-private-macro.cpp
macro-ambiguity.cpp
macro-hiding.cpp
macro-masking.cpp
macro-redefinition.cpp
macro-reexport.cpp
macro-undef-through-pch.m
macros.c Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
macros2.c Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
malformed-overload.m Add -Wno-strict-prototypes to C tests; NFC 2022-02-24 15:30:30 -05:00
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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-objc-interface-visibility.m [AIX][NFC] Unsupported object-c test 2021-11-01 13:44:23 +00:00
merge-objc-interface.m
merge-objc-protocol-visibility.m [AIX] Set D111860's test unsupported on AIX 2021-11-11 15:51:19 +00:00
merge-record-definition-nonmodular.m
merge-record-definition-visibility.m
merge-record-definition.m
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_transitive.m [clang][objc] Speed up populating the global method pool from modules. 2021-11-03 17:11:14 -07:00
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
missing-header.m
missing-submodule.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
modify-module.m
modular_maps.cpp
module-debuginfo-prefix.m [AIX][ZOS] Disable tests due to lack of Objective-C support 2021-10-25 23:32:13 -04:00
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
module-map-path-hash.cpp
module-name-private.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
module-name-used-by-objc-bridge.m [clang][modules] Delay creating `IdentifierInfo` for names of explicit modules 2021-10-18 11:50:29 +02:00
module-pch-different-cache-path.c
module-private.cpp
module-transtive-instantiation-2.cpp [NFC] [C++20] [Modules] Add tests for template instantiation in transitively imported module 2021-12-22 11:09:41 +08:00
module-transtive-instantiation.cpp [C++20] [Modules] Mark imported module as imported if not exported 2021-12-23 21:14:13 +08:00
module_file_info.m
module_map_cwd.c
modulemap-locations.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
modules-cache-path-canonicalization.m
modules-with-same-name.m
modules.idx
ms-enums.cpp
multiple-include.cpp
namespaces.cpp
nested-template-default-arg-redecl.cpp
new-delete.cpp
no-implicit-builds.cpp
no-implicit-maps.cpp
no-linkage.cpp
no-module-map.cpp
no-stale-modtime.m
no-undeclared-includes-builtins.cpp
non-ambiguous-enum.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
normal-module-map.cpp Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05: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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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 [clang] Fix wrong -Wunused-local-typedef warning within a template function 2022-03-21 13:21:25 +02:00
odr_hash.mm [modules] While merging ObjCInterfaceDecl definitions, merge them as decl contexts too. 2021-10-20 18:48:29 -07:00
odr_using_dependent_name.cppm [NFC] Use %clang_cc instead of %clang in c++20 module tests 2021-12-22 11:50:47 +08:00
on-demand-build.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
on-demand-macros.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
outofdate-rebuild.m
overloadable-attrs.cpp
parse-attributes.modulemap
path-resolution.modulemap
pch-module-macro.m
pch-shared-module.c [clang][modules] Cache loads of modules imported by PCH 2021-10-13 18:09:52 +02:00
pch-used.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
prebuilt-module.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
preprocess-build-diamond.m
preprocess-build.cpp
preprocess-decluse.cpp
preprocess-missing.modulemap
preprocess-module.cpp
preprocess-nested.cpp
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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
shadow.m
shadowed-submodule.m
signal.m
static_assert.cpp
stddef.c
stddef.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
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 Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
subframework-from-intermediate-path.m
subframeworks.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
submodule-in-private-mmap.m
submodule-visibility-cycles.cpp
submodule-visibility.cpp
submodules-merge-defs.cpp
submodules-preprocess.cpp
submodules.cpp
submodules.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
suggest-include.cpp
system-out-of-date-test.m
system_headers.m
tag-injection.c
tag-injection.cpp
target-features.m [NFC][Clang][test] Inclusive language: Remove and rephrase uses of sanity test/check in clang/test 2021-11-24 14:03:49 -05:00
target-platform-features.m
template-default-args.cpp
template-specialization-visibility.cpp
template_name_lookup.cpp [AST] lookup in parent DeclContext for transparent DeclContext 2022-01-11 10:16:26 +08:00
templates-2.mm
templates.mm [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default 2022-01-16 18:54:17 +09:00
textual-hdr-in-umbrella-hdr.m
textual-headers.cpp
thread-safety.cpp
typedef-tag-not-visible.m
typo.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00
umbrella-header-include-builtin.mm
unavailable-local-visibility.test
undefined-type-fixit1.cpp
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 [NFC][Clang][test] Inclusive language: Remove and rephrase uses of sanity test/check in clang/test 2021-11-24 14:03:49 -05:00
validate-file-content.m
validate-system-headers.m
var-templates.cpp
visibility-in-instantiation.cpp
warn-unused-local-typedef.cpp
warning-mismatch.m
wildcard-submodule-exports.cpp
working-dir-flag.m Use functions with prototypes when appropriate; NFC 2022-02-10 16:06:03 -05:00