| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
context is the class itself but lookups should be performed starting with the
lookup parent of the class (class and base members don't shadow types from the
surrounding context because they have not been declared yet).
llvm-svn: 245236
|
| |
|
|
|
|
| |
the same anonymous union is defined across multiple modules.
llvm-svn: 243940
|
| |
|
|
|
|
| |
underlying types. A visible declaration is enough to make the type complete, but not enough to make the definition visible.
llvm-svn: 241743
|
| |
|
|
|
|
|
| |
rarely matters, but can affect whether two dependent types are canonically
equivalent.
llvm-svn: 241207
|
| |
|
|
|
|
|
| |
class template specialization visible just because the class template
specialization's definition is visible.
llvm-svn: 241182
|
| |
|
|
|
|
|
|
|
|
|
|
| |
redefinitions of internal-linkage symbols that are not visible.
Such conflicts are an accident waiting to happen, and this feature conflicts
with the desire to include existing headers into multiple modules and merge the
results. (In an ideal world, it should not be possible to export internal
linkage symbols from a module, but sadly the glibc and libstdc++ headers
provide 'static inline' functions in a few cases.)
llvm-svn: 240335
|
| |
|
|
|
|
| |
making either of them visible makes the merged definition visible.
llvm-svn: 239969
|
| |
|
|
| |
llvm-svn: 239954
|
| |
|
|
|
|
| |
that we know when its default arguments should be visible.
llvm-svn: 239936
|
| |
|
|
|
|
| |
argument is not visible.
llvm-svn: 239934
|
| |
|
|
|
|
|
|
|
| |
Previously we'd complain about redefinition of default arguments when we
instantiated a class with a friend template that inherits its default argument,
because we propagate the default template arguemnt onto the friend when we
reload the AST.
llvm-svn: 239857
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We used to have a flag to enable module maps, and two more flags to enable
implicit module maps. This is all redundant; we don't need any flag for
enabling module maps in the abstract, and we don't usually have -fno- flags for
-cc1. We now have just a single flag, -fimplicit-module-maps, that enables
implicitly searching the file system for module map files and loading them.
The driver interface is unchanged for now. We should probably rename
-fmodule-maps to -fimplicit-module-maps at some point.
llvm-svn: 239789
|
| |
|
|
|
|
|
| |
Support this across module save/reload and extend the 'missing import'
diagnostics with a list of providing modules.
llvm-svn: 239750
|
| |
|
|
| |
llvm-svn: 239578
|
| |
|
|
| |
llvm-svn: 239575
|
| |
|
|
|
|
| |
disabled but local module visibilty was enabled.
llvm-svn: 239504
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With this change, enabling -fmodules-local-submodule-visibility results in name
visibility rules being applied to submodules of the current module in addition
to imported modules (that is, names no longer "leak" between submodules of the
same top-level module). This also makes it much safer to textually include a
non-modular library into a module: each submodule that textually includes that
library will get its own "copy" of that library, and so the library becomes
visible no matter which including submodule you import.
llvm-svn: 237473
|
| |
|
|
|
|
| |
not visible definition of the same template.
llvm-svn: 233430
|
| |
|
|
|
|
|
|
| |
if the merged definition is visible, and perform lookups into all merged copies
of the definition (not just for special members) so that we can complete the
redecl chains for members of the class.
llvm-svn: 233420
|
| |
|
|
| |
llvm-svn: 233407
|
| |
|
|
|
|
| |
top of an existing imported-but-not-visible definition.
llvm-svn: 233345
|
| |
|
|
|
|
| |
imported-but-not-visible definition.
llvm-svn: 233341
|
|
|
non-visible definition, skip the new definition and make the old one visible
instead of trying to parse it again and failing horribly. C++'s ODR allows
us to assume that the two definitions are identical.
llvm-svn: 233250
|