summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/operator-template.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use the appropriate SourceLocation for the template backtrace when doingNick Lewycky2014-01-111-3/+2
| | | | | | template argument deduction. llvm-svn: 198995
* Improve 'failed template argument deduction' diagnostic for the case where weRichard Smith2013-01-311-1/+1
| | | | | | | | have a direct mismatch between some component of the template and some component of the argument. The diagnostic now says what the mismatch was, but doesn't yet say which part of the template doesn't match. llvm-svn: 174039
* When we determine that a function template specialization produced asDouglas Gregor2011-10-121-4/+6
| | | | | | | | | | | | | | | part of template argument deduction is ill-formed, we mark it as invalid and treat it as a deduction failure. If we happen to find that specialization again, treat it as a deduction failure rather than silently building a call to the declaration. Fixes PR11117, a marvelous bug where deduction failed after creating an invalid specialization, causing overload resolution to pick a different candidate. Then we performed a similar overload resolution later, and happily picked the invalid specialization to call... resulting in a silent link failure. llvm-svn: 141809
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-1/+1
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). llvm-svn: 91446
* If we attempt to add a constructor template specialization that looksDouglas Gregor2009-11-141-1/+1
| | | | | | | | | | | | like a copy constructor to the overload set, just ignore it. This ensures that we don't try to use such a constructor as a copy constructor *without* triggering diagnostics at the point of declaration. Note that we *do* diagnose such copy constructors when explicitly written by the user (e.g., as an explicit specialization). llvm-svn: 88733
* Revert r88718, which does NOT solve the ↵Douglas Gregor2009-11-131-4/+2
| | | | | | constructor-template-as-copy-constructor issue. Big thanks to John for finding this llvm-svn: 88724
* A constructor template cannot be instantiated to a copyDouglas Gregor2009-11-131-2/+4
| | | | | | constructor. Make sure that such declarations can never be formed. llvm-svn: 88718
* Keep track of more information within the template instantiation stack, e.g.,Douglas Gregor2009-07-011-2/+2
| | | | | | | | | | | | | | by distinguishing between substitution that occurs for template argument deduction vs. explicitly-specifiad template arguments. This is used both to improve diagnostics and to make sure we only provide SFINAE in those cases where SFINAE should apply. In addition, deal with the sticky issue where SFINAE only considers substitution of template arguments into the *type* of a function template; we need to issue hard errors beyond this point, as test/SemaTemplate/operator-template.cpp illustrates. llvm-svn: 74651
* Improve support for overloaded operator templates.Douglas Gregor2009-06-271-0/+2
| | | | llvm-svn: 74390
* Fix a bogus error overloading an operator where the only class Eli Friedman2009-06-271-0/+14
parameter has a dependent type. llvm-svn: 74380
OpenPOWER on IntegriCloud