llvm-project/clang/test/Modules
Richard Smith 87bb569844 [modules] Fix some visibility issues with default template arguments.
There are still problems here, but this is a better starting point.

The main part of the change is: when doing a lookup that would accept visible
or hidden declarations, prefer to produce the latest visible declaration if
there are any visible declarations, rather than always producing the latest
declaration.

Thus, when we inherit default arguments (and other properties) from a previous
declaration, we inherit them from the previous visible declaration; if the
previous declaration is hidden, we already suppress inheritance of default
arguments.

There are a couple of other changes here that fix latent bugs exposed by this
change.

llvm-svn: 239371
2015-06-09 00:35:49 +00:00
..
Inputs [modules] Fix some visibility issues with default template arguments. 2015-06-09 00:35:49 +00:00
Rmodule-build.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
Werror-Wsystem-headers.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
Werror.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
add-remove-private.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
anon-namespace.cpp [modules] Fix bug where an anonymous namespace could cause the containing 2015-03-17 02:23:11 +00:00
attr-unavailable.m Fix bogus 'method is unavailable' errors with modules 2015-01-12 19:27:00 +00:00
auto-module-import.m Generate a marker token when entering or leaving a submodule when building a 2013-11-23 04:06:09 +00:00
autolink.m Add PS4's autolink syntax to autolink.m's CHECK lines. 2015-02-28 07:35:07 +00:00
build-fail-notes.m Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
builtins.m
compiler_builtins.m Fix compiler_builtins.m test to not rely on including system stdlib.h and malloc.h 2015-01-22 00:45:20 +00:00
compiler_builtins_arm.m Revert "Add a missing target requirement." 2015-02-25 02:43:38 +00:00
config_macros.m Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
conflicts.m
crashes.m [test] Expand a bit on the test case from r231251. NFC. 2015-03-05 03:12:33 +00:00
cstd.m [modules] If we see a #include that maps to a module, but use of precompiled modules is disabled, track submodule visibility anyway if -fmodules-local-submodule-visibility is enabled. This, in effect, gives modules semantics but without precompilation. 2015-05-18 03:52:30 +00:00
cxx-decls.cpp [modules] For an inheriting constructor, the inherited constructor is stored in 2015-02-27 01:57:00 +00:00
cxx-dtor.cpp [modules] Don't clobber a destructor's operator delete when adding another one; 2015-03-10 01:41:22 +00:00
cxx-inline-namespace.cpp If a name is injected into an imported inline namespace without reopening that 2014-03-23 20:41:56 +00:00
cxx-irgen.cpp Emit DeferredDeclsToEmit in a DFS order. 2015-01-22 00:24:57 +00:00
cxx-linkage-cache.cpp
cxx-lookup.cpp [modules] When determining whether a name from a module replaces a name we 2015-02-10 03:28:10 +00:00
cxx-many-overloads.cpp
cxx-templates.cpp [modules] When merging class definitions, make the retained definition visible 2015-03-27 21:16:39 +00:00
cycles.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
declare-use-compatible.cpp Make -fmodules-decluse and -fmodules-strict-decluse compatible options. 2015-02-19 09:56:13 +00:00
declare-use.S modify declare-use.S to work when full toolchain not present 2014-03-18 12:25:27 +00:00
declare-use1.cpp Make a module "use" also count as use of all its submodules 2015-03-13 11:26:16 +00:00
declare-use2.cpp Change layering warning tests to not actually build modules. 2013-12-11 09:11:12 +00:00
declare-use3.cpp Use the expansion location of the file name when finding the module. 2014-03-19 10:22:36 +00:00
declare-use4.cpp Use the expansion location of the file name when finding the module. 2014-03-19 10:22:36 +00:00
declare-use5.cpp When building a module, all headers of submodules can be used. 2015-03-13 14:29:39 +00:00
decldef.m During typo correction, check for an exact match in an unimported module. If we 2013-08-20 20:35:18 +00:00
decldef.mm If a declaration is loaded, and then a module import adds a redeclaration, then 2014-05-16 23:01:30 +00:00
deferred-lookup.cpp [modules] Don't accidentally trigger deserialization from DeclContext::noload_lookup. 2015-02-07 00:45:52 +00:00
dependency-dump-dependent-module.m Disable Modules/dependency-dump-dependent-module.m on win32 for now. 2014-06-20 15:04:25 +00:00
dependency-dump.m Frontend: Canonicalize to native paths when dumping module dependencies 2014-12-12 23:12:27 +00:00
dependency-gen-inferred-map.m Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
dependency-gen-pch.m Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
dependency-gen.m test: Disable standard system includes in %clang_cc1 2014-10-03 22:18:49 +00:00
dependency-gen.modulemap Remove shell requirements from tests that use 'cd' 2015-03-02 22:42:58 +00:00
diag-pragma.c Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
diagnostics.modulemap [modules] Restrict the module use-declaration to only appear in top-level 2015-03-26 22:10:01 +00:00
diamond-pch.c Allow multiple modules with the same name to coexist in the module cache 2014-04-14 18:00:01 +00:00
diamond.c Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
direct-module-import.m
driver.c Fix FileCheck --check-prefix lines. 2013-08-12 12:51:05 +00:00
empty.modulemap [Modules] Start making explicit modules produce deterministic output. 2015-03-24 21:18:10 +00:00
epic-fail.m Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
exclude-header.c If a header is explicitly included in module A, and excluded from an umbrella 2014-04-08 13:13:04 +00:00
explicit-build-flags.cpp clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
explicit-build-relpath.cpp Remove shell requirement from test/Modules/explicit-build-relpath.cpp 2015-03-02 22:55:01 +00:00
explicit-build.cpp Make module files passed to a module build via -fmodule-file= available to 2015-03-18 01:42:29 +00:00
exponential-paths.cpp [modules] Deduplicate when merging lists of template specializations from imported modules. 2015-02-28 01:45:19 +00:00
extern_c.cpp Module [extern_c] attribute: inherit to submodules, don't write 'extern "C"' 2014-03-08 00:03:56 +00:00
extern_c_bad.cpp Add [extern_c] attribute for modules, allowing a C module to be imported within an extern "C" block in C++ code. 2014-03-02 05:58:18 +00:00
fatal-module-loader-error.m libclang: report error code for bad PCH files 2014-02-12 19:12:37 +00:00
filename.cpp Remove shell requirements from tests that use 'cd' 2015-03-02 22:42:58 +00:00
fmodules-validate-once-per-build-session.c Validate user headers even if -fmodules-validate-once-per-build-session 2014-11-10 22:13:10 +00:00
global_index.m
header-import.m
header-in-multiple-maps.cpp [modules] If we have a choice between including a file textually and importing 2015-02-13 23:50:20 +00:00
ignored_macros.m [PCH/Modules] Check that the specific module cache path the PCH was built with, is the same as 2015-02-19 20:12:20 +00:00
implementation-of-module.m [PCH/Modules] Check that the specific module cache path the PCH was built with, is the same as 2015-02-19 20:12:20 +00:00
import-decl.cpp Modules: Teach the preprocessor to recognize 'import' only after an '@'. 2013-11-07 22:55:02 +00:00
import-self.m Make module self-import an error 2014-05-05 05:31:33 +00:00
include-relative.c Remove shell requirements from tests that use 'cd' 2015-03-02 22:42:58 +00:00
include_next.c [modules] Add support for #include_next. 2014-10-20 00:15:49 +00:00
incomplete-module.m Remove superceded warning warn_forgotten_module_header 2014-11-05 16:43:18 +00:00
inferred-attributes.mm Inherit attributes when infering a framework module 2015-01-13 17:47:44 +00:00
inferred-framework-case.m Try harder to supress the test from r212975 on Windows 2014-07-14 21:14:28 +00:00
inferred-frameworks.m
inferred-submodules.m
initializer_list.cpp [modules] Properly check whether a declaration is std::initializer_list. This 2015-02-24 03:30:14 +00:00
invalidate-identifiers.c [modules] Fix iterator invalidation issue with names being added to a module 2015-03-11 00:00:51 +00:00
irgen.c Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
linkage-merge.cpp [modules] Remove redundant import of lexical decls when building a lookup table 2015-03-23 03:25:59 +00:00
linkage-merge.m Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
load-after-failure.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
load_failure.c Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
lookup.cpp Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
lookup.m Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
macro-ambiguity.cpp [modules] Add -fmodules-local-submodule-visibility flag. 2015-05-01 21:22:17 +00:00
macro-hiding.cpp [modules] Fix some of the confusion when computing the override set for a macro 2014-07-21 04:10:40 +00:00
macro-masking.cpp [modules] If a module #includes a modular header that #undef's its macro, it 2015-05-02 00:45:56 +00:00
macro-reexport.cpp [modules] Add -fmodules-local-submodule-visibility flag. 2015-05-01 21:22:17 +00:00
macro-undef-through-pch.m Allow multiple modules with the same name to coexist in the module cache 2014-04-14 18:00:01 +00:00
macros.c [modules] Add local submodule visibility support for declarations. 2015-05-15 20:05:43 +00:00
macros2.c [modules] Add local submodule visibility support for declarations. 2015-05-15 20:05:43 +00:00
malformed.cpp Revert r237609 for now. 2015-05-19 19:58:11 +00:00
merge-anon-in-template.cpp Fix test file names so they're picked up by lit. 2015-01-22 03:24:07 +00:00
merge-decl-context.cpp [modules] When loading in multiple canonical definitions of a template, 2015-02-27 00:25:58 +00:00
merge-decl-order.cpp [modules] When collecting declarations to complete a redeclaration chain for an 2015-02-12 23:21:45 +00:00
merge-dependent-friends.cpp [modules] Treat friend declarations that are lexically within a dependent 2015-02-07 03:11:11 +00:00
merge-friends.cpp [modules] If a module declares an entity and then imports another declaration 2015-02-06 02:42:59 +00:00
merge-implicit-special-members.cpp [modules] If we add an implicit special member to a class through an update 2015-01-22 03:50:31 +00:00
merge-name-for-linkage.cpp Fix test file names so they're picked up by lit. 2015-01-22 03:24:07 +00:00
merge-nested-templates.cpp [modules] Sometimes we can deserialize a class member but not have yet 2015-01-24 01:07:20 +00:00
merge-target-features.cpp [modules] Teach the AST reader to handle the case of importing a module 2015-03-14 04:47:43 +00:00
merge-template-friend.cpp [modules] When merging the pattern of a class template definition into a prior 2015-03-11 18:21:02 +00:00
merge-template-members.cpp [modules] If we already have a fake definition for one declaration of a class, 2015-02-04 01:23:46 +00:00
merge-typedefs.cpp Fix typo. 2014-08-25 23:33:46 +00:00
merge-using-decls.cpp [modules] Merging for class-scope using-declarations. 2014-10-14 02:00:47 +00:00
merge-vtable-codegen.cpp Reland (2x) r230314, "Fix codegen for virtual methods that are (re-) exported from multiple modules." 2015-02-25 19:17:48 +00:00
method_pool.m When building a module, keep *all* declared methods in the global method pool. 2013-06-21 00:20:25 +00:00
missing-header.m Don't build modules with (submodules with) missing headers 2014-04-18 22:07:31 +00:00
missing-submodule.m Do not print inferred submodules explicitly in __inferred_module.map 2014-04-23 21:10:46 +00:00
modify-module.m
modular_maps.cpp Remove shell requirements from tests that use 'cd' 2015-03-02 22:42:58 +00:00
module-private.cpp Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
module_file_info.m test: Disable standard system includes in %clang_cc1 2014-10-03 22:18:49 +00:00
modulemap-locations.m Don't load Framework module.map files when searching subdirectories 2015-02-24 04:58:15 +00:00
modules-with-same-name.m Revert "Mangle the IsSystem bit into the .pcm file name" 2015-02-19 20:23:22 +00:00
namespaces.cpp Render anonymous entities as '(anonymous <thing>)' (and lambdas as '(lambda at ... )') 2014-04-02 05:58:29 +00:00
no-implicit-builds.cpp Add -fno-implicit-modules. 2015-02-20 11:44:41 +00:00
no-implicit-maps.cpp Add flag -f(no-)modules-implicit-maps. 2014-11-25 09:45:48 +00:00
no-stale-modtime.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
normal-module-map.cpp During typo correction, check for an exact match in an unimported module. If we 2013-08-20 20:35:18 +00:00
objc-categories.m Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
objc_redef.m Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
odr.cpp [modules] Remove redundant import of lexical decls when building a lookup table 2015-03-23 03:25:59 +00:00
on-demand-build.m
on-demand-macros.m
pch-used.m Fix PCHs that import more than one module 2014-09-08 20:36:26 +00:00
pr19692.cpp PR19692: Add (passing) regression test. 2014-09-15 22:14:48 +00:00
pr20399.cpp PR20399: Do not assert when adding an implicit member coming from a module at 2014-09-30 00:45:29 +00:00
pr20786.cpp Oops, use correct RUN: line for test. 2014-08-28 21:09:23 +00:00
pr21217.cpp Add test file missed from r223561. 2014-12-06 22:11:06 +00:00
pr21687.cpp PR21687: when adding a redeclaration of a function with an implicit exception 2015-03-10 02:00:53 +00:00
preprocess.m [modules] When using -E, we may try to merge decls despite having no Sema 2015-02-04 23:37:59 +00:00
private.cpp Allow errors on use of a private module header to be disabled, to better support incremental transition to modules. 2015-02-19 00:10:28 +00:00
private1.cpp Use the same SourceManager for ModuleMaps and compilations. 2013-10-24 07:51:24 +00:00
prune.m Fix find command in test/Modules/prune.m broken by r206201 2014-04-14 18:50:28 +00:00
public-private.modulemap Fix public-private.modulemap test case to clear the cache on every run. 2015-05-06 22:31:13 +00:00
rebuild.m Check module signature when the module has already been loaded 2014-11-08 00:34:30 +00:00
recursive.c clang/test/Modules/recursive.c: Tweak expressions for win32. 2014-03-06 00:12:04 +00:00
recursive_visibility.mm Include non-explicit submodules in exported module list 2013-11-04 21:51:33 +00:00
redecl-add-after-load.cpp [modules] When merging class definitions, make the retained definition visible 2015-03-27 21:16:39 +00:00
redecl-found-building-chains.cpp [modules] If we find more formerly-canonical declarations of an entity while 2015-03-16 20:54:07 +00:00
redecl-merge.m
redecl-merge2.m
redecl-namespaces.mm Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
redecl-templates.cpp [modules] Ensure we've imported all declarations of a template before 2015-02-24 02:44:23 +00:00
redeclarations.m Require a module.map file to load a module 2014-01-22 23:19:39 +00:00
redecls.m Reorganize test/Modules: 2015-01-22 23:07:47 +00:00
relative-dep-gen.cpp [Modules] Stop creating timestamps for the modules cache and trying to 2015-03-24 21:44:25 +00:00
renamed.m Move the input files for the unnecessary-module-map-parsing test to Inputs. 2013-12-13 10:08:24 +00:00
require-modular-includes.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
requires.m Add cc1 option '-fmodule-feature' to add custom values for 'requires' decls 2015-02-02 21:56:15 +00:00
requires.mm Allow a new syntax in a module requires-declaration: 2013-10-28 22:18:19 +00:00
resolution-change.m [modules] If we import a module, and we've seen a module map that describes the 2014-12-06 03:21:08 +00:00
self-import-header.m Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
separate_map_tree.cpp Allow a header to be part of multiple modules. 2013-10-22 08:09:47 +00:00
serialized-diags.m
stddef.c Fix interaction of max_align_t and modules. 2014-10-03 00:31:35 +00:00
stddef.m
stress1.cpp [Modules] Preserve source order for the map of late parsed templates. 2015-03-26 09:08:15 +00:00
strict-decluse.cpp Add -fmodules-strict-decluse to check that all headers are in modules 2014-04-11 11:47:45 +00:00
string_names.cpp Allow string literals as module names. 2013-12-06 09:25:54 +00:00
subframework-from-intermediate-path.m Prevent lookup of subframework modules by name without parent framework 2014-03-20 18:27:26 +00:00
subframeworks.m During typo correction, check for an exact match in an unimported module. If we 2013-08-20 20:35:18 +00:00
submodule-visibility-cycles.cpp [modules] If we re-enter a submodule from within itself (when submodule 2015-05-21 01:20:10 +00:00
submodule-visibility.cpp [modules] If we see a #include that maps to a module, but use of precompiled modules is disabled, track submodule visibility anyway if -fmodules-local-submodule-visibility is enabled. This, in effect, gives modules semantics but without precompilation. 2015-05-18 03:52:30 +00:00
submodules-merge-defs.cpp [modules] Add local submodule visibility support for declarations. 2015-05-15 20:05:43 +00:00
submodules-preprocess.cpp
submodules.cpp Make module self-import an error 2014-05-05 05:31:33 +00:00
submodules.m
system_headers.m Fix interaction of max_align_t and modules. 2014-10-03 00:31:35 +00:00
system_version.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
template-default-args.cpp [modules] Fix some visibility issues with default template arguments. 2015-06-09 00:35:49 +00:00
template-specialization-visibility.cpp If an instantiation of a template is required to be a complete type, check 2014-05-07 02:25:43 +00:00
templates-2.mm Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
templates.mm Test case updates for explicit type parameter to the gep operator 2015-03-13 18:21:46 +00:00
textual-headers.cpp [modules] Support combining 'textual' with 'private'. 2014-10-24 20:23:01 +00:00
undefined-type-fixit1.cpp Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules. 2014-04-23 12:57:01 +00:00
unnecessary-module-map-parsing.c Modules: Don't warn upon missing headers while reading the module map. 2013-12-17 10:31:37 +00:00
update-after-load.cpp If a visibility update record is found for a DeclContext after that Decl has 2014-03-11 03:10:46 +00:00
update-exception-spec.cpp [modules] Remove redundant import of lexical decls when building a lookup table 2015-03-23 03:25:59 +00:00
using-decl.cpp Make UsingShadowDecls redeclarable. This fixes some visibility problems with 2013-10-23 02:17:46 +00:00
va_list.m Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
validate-system-headers.m clang/test/Modules: Remove "REQUIRES:shell" since they work for me. 2014-11-04 12:59:18 +00:00
warn-unused-local-typedef.cpp Temporary XFAILs for Hexagon 2015-03-04 23:40:38 +00:00
wildcard-submodule-exports.cpp