summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/Inputs/submodules-merge-defs
Commit message (Collapse)AuthorAgeFilesLines
* Allow non-defining declarations of class template partial specializations toRichard Smith2015-12-111-0/+7
| | | | | | | | | 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
* [modules] When parsing the base specifiers of a parse-merged class, the currentRichard Smith2015-08-171-0/+7
| | | | | | | | 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
* [modules] When loading a template specialization, re-canonicalize its templateRichard Smith2015-08-091-0/+13
| | | | | | | | 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
* [modules] Make IndirectFieldDecl mergeable to avoid lookup ambiguity when ↵Richard Smith2015-08-041-0/+8
| | | | | | the same anonymous union is defined across multiple modules. llvm-svn: 243940
* [modules] When performing redeclaration lookup for a using declaration, preferRichard Smith2015-07-291-0/+6
| | | | | | | | | | 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
* [modules] Fix merging support for forward-declared enums with fixed ↵Richard Smith2015-07-081-0/+3
| | | | | | underlying types. A visible declaration is enough to make the type complete, but not enough to make the definition visible. llvm-svn: 241743
* [modules] Merging support for specializations of a function template. This veryRichard Smith2015-07-011-0/+8
| | | | | | | rarely matters, but can affect whether two dependent types are canonically equivalent. llvm-svn: 241207
* [modules] Don't make out-of-line member specializations of an instantiatedRichard Smith2015-07-011-1/+3
| | | | | | | class template specialization visible just because the class template specialization's definition is visible. llvm-svn: 241182
* [modules] Skip trailing attributes when skipping a class definition during ↵Richard Smith2015-07-011-0/+4
| | | | | | parse-merging. llvm-svn: 241180
* [modules] Don't require the 'inline' specifier when merging an inline function;Richard Smith2015-07-011-0/+6
| | | | | | any source of the inline nature is sufficient. llvm-svn: 241146
* [modules] Fix typo in default argument merging.Richard Smith2015-06-171-0/+2
| | | | llvm-svn: 239954
* [modules] Fix merging of default template arguments onto friend templates.Richard Smith2015-06-161-0/+11
| | | | | | | | | 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
* Fix submodule test to pass on content addressable filesystems where inodes ↵Reid Kleckner2015-06-152-0/+2
| | | | | | would collide llvm-svn: 239765
* [modules] Better support for redefinitions of an entity from the same module.Richard Smith2015-06-153-1/+3
| | | | | | | Support this across module save/reload and extend the 'missing import' diagnostics with a list of providing modules. llvm-svn: 239750
* [modules] Apply name visibility rules to names found by ADL.Richard Smith2015-06-121-0/+6
| | | | llvm-svn: 239578
* [modules] Fix crash with multiple levels of default template argument merging.Richard Smith2015-06-111-0/+1
| | | | llvm-svn: 239575
* [modules] Fix assert/crash when parsing and merging a definition of a class ↵Richard Smith2015-06-111-3/+3
| | | | | | with a base-specifier inside a namespace. llvm-svn: 239569
* [modules] Fix a few places where merging wasn't performed if modules was ↵Richard Smith2015-06-113-0/+14
| | | | | | disabled but local module visibilty was enabled. llvm-svn: 239504
* [modules] Support merging a parsed default argument with an imported hidden ↵Richard Smith2015-05-201-1/+2
| | | | | | one for non-type and template template parameters too. llvm-svn: 237815
* [modules] Support merging a parsed default function/template argument with ↵Richard Smith2015-05-201-0/+2
| | | | | | an imported but hidden one. llvm-svn: 237814
* [modules] Support for merging a parsed definition of a static data member of ↵Richard Smith2015-05-191-0/+2
| | | | | | a class template into an imported but hidden definition. llvm-svn: 237647
* [modules] Support for merging a parsed class template specialization ↵Richard Smith2015-05-181-0/+5
| | | | | | definition into an imported but hidden definition. llvm-svn: 237612
* [modules] Suport for merging a parsed enum definition into an existing ↵Richard Smith2015-05-071-0/+7
| | | | | | imported but not visible definition. llvm-svn: 236690
* [modules] Allow a function template definition if we have a pre-existing but ↵Richard Smith2015-03-271-0/+11
| | | | | | not visible definition of the same template. llvm-svn: 233430
* Add file forgotten from r233420.Richard Smith2015-03-271-0/+1
| | | | llvm-svn: 233425
* [modules] When merging class definitions, make the retained definition visibleRichard Smith2015-03-271-0/+5
| | | | | | | | 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
* [modules] Allow a function to be redefined if the old definition is not visible.Richard Smith2015-03-271-2/+2
| | | | llvm-svn: 233407
* [modules] Handle defining a tag with a typedef name for linkage purposes on ↵Richard Smith2015-03-271-0/+4
| | | | | | top of an existing imported-but-not-visible definition. llvm-svn: 233345
* [modules] Handle defining a class template on top of an existing ↵Richard Smith2015-03-271-1/+11
| | | | | | imported-but-not-visible definition. llvm-svn: 233341
* [modules] If we reach a definition of a class for which we already have aRichard Smith2015-03-265-0/+23
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
OpenPOWER on IntegriCloud