summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/Inputs/template-default-args/a.h
Commit message (Collapse)AuthorAgeFilesLines
* [modules] Properly look up the owning module for an instantiation of a ↵Richard Smith2017-04-211-0/+13
| | | | | | | | | | | | | | | merged template. When looking for the template instantiation pattern of a templated entity, consistently select the definition of the pattern if there is one. This means we'll pick the same owning module when we start instantiating a template that we'll later pick when determining which modules are visible during that instantiation. This reinstates r300650, reverted in r300659, with a fix for a regression reported by Chandler after commit. llvm-svn: 300938
* Revert r300653 and r300650. The underlying commit fixes one issue withChandler Carruth2017-04-191-8/+0
| | | | | | | | | | modules but exposes much more widespread issues. Example and more information is on the review thread for r300650. Original commit summary: [modules] Properly look up the owning module for an instantiation of a merged template. llvm-svn: 300659
* [modules] Properly look up the owning module for an instantiation of a ↵Richard Smith2017-04-191-0/+8
| | | | | | | | | | | | merged template. When looking for the template instantiation pattern of a templated entity, consistently select the definition of the pattern if there is one. This means we'll pick the same owning module when we start instantiating a template that we'll later pick when determining which modules are visible during that instantiation. llvm-svn: 300650
* [modules] When picking one of two template declarations as a lookup result,Richard Smith2015-09-111-0/+4
| | | | | | | | it's not sufficient to prefer the declaration with more default arguments, or the one that's visible; they might both be visible, but one of them might have a visible default argument where the other has a hidden default argument. llvm-svn: 247486
* [modules] When parsing the base specifiers of a parse-merged class, the currentRichard Smith2015-08-171-0/+3
| | | | | | | | 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] Add (already passing) test for template default argument merging ↵Richard Smith2015-07-191-0/+2
| | | | | | when the template is declared in a namespace. llvm-svn: 242653
* [modules] Don't allow use of non-visible (inherited) default template arguments.Richard Smith2015-06-101-0/+2
| | | | llvm-svn: 239487
* [modules] Track all default template arguments for a given parameter acrossRichard Smith2015-06-101-0/+1
| | | | | | | modules, and allow use of a default template argument if any of the parameters providing it is visible. llvm-svn: 239485
* Revert accidentally-committed test change from r239447.Richard Smith2015-06-101-1/+0
| | | | llvm-svn: 239452
* Refactor storage of default template arguments.Richard Smith2015-06-101-0/+1
| | | | | | | This is just a preparatory step towards fixing visibility for default template arguments in modules builds. llvm-svn: 239447
* [modules] Fix some visibility issues with default template arguments.Richard Smith2015-06-091-0/+4
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
OpenPOWER on IntegriCloud