| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
have a nested name specifier. Strictly speaking, forward declarations of class
template partial specializations are not permitted at all, but that seems like
an obvious wording defect, and if we allow them without a nested name specifier
we should also allow them with a nested name specifier.
llvm-svn: 255383
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
arguments because the reloaded form might have become non-canonical across the
serialization/deserialization step (this particularly happens when the
canonical form of the type involves an expression).
llvm-svn: 244409
|
|
|
|
|
|
| |
the same anonymous union is defined across multiple modules.
llvm-svn: 243940
|
|
|
|
|
|
|
|
|
|
| |
UsingShadowDecls over other declarations of the same entity in the lookup
results. This ensures that we build correct redeclaration chains for the
UsingShadowDecls (otherwise we could see assertions and other misbehavior in
modules builds, when merging combines multiple redeclaration chains for the
same entity from the same module into one chain).
llvm-svn: 243592
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
parse-merging.
llvm-svn: 241180
|
|
|
|
|
|
| |
any source of the inline nature is sufficient.
llvm-svn: 241146
|
|
|
|
| |
llvm-svn: 239954
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
would collide
llvm-svn: 239765
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
with a base-specifier inside a namespace.
llvm-svn: 239569
|
|
|
|
|
|
| |
disabled but local module visibilty was enabled.
llvm-svn: 239504
|
|
|
|
|
|
| |
one for non-type and template template parameters too.
llvm-svn: 237815
|
|
|
|
|
|
| |
an imported but hidden one.
llvm-svn: 237814
|
|
|
|
|
|
| |
a class template into an imported but hidden definition.
llvm-svn: 237647
|
|
|
|
|
|
| |
definition into an imported but hidden definition.
llvm-svn: 237612
|
|
|
|
|
|
| |
imported but not visible definition.
llvm-svn: 236690
|
|
|
|
|
|
| |
not visible definition of the same template.
llvm-svn: 233430
|
|
|
|
| |
llvm-svn: 233425
|
|
|
|
|
|
|
|
| |
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
|