summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/temp/temp.decls/temp.class.spec
Commit message (Collapse)AuthorAgeFilesLines
* DR1315: a non-type template argument in a partial specialization is permittedRichard Smith2016-12-282-11/+15
| | | | | | | | | | to make reference to template parameters. This is only a partial implementation; we retain the restriction that the argument must not be type-dependent, since it's unclear how that would work given the existence of other language rules requiring an exact type match in this context, even for type-dependent cases (a question has been raised on the core reflector). llvm-svn: 290647
* Replace "can not" with "cannot" in diagnostics messages.Ismail Pazarbasi2014-03-071-2/+2
| | | | llvm-svn: 203302
* Hopefully unbreak bots which are seeing an assert in this test. Temporary, realRichard Smith2013-09-241-1/+7
| | | | | | | fix to come once I've tracked down the problem (which is pre-existing and not related to the change which introduced this test). llvm-svn: 191279
* Implement restriction that a partial specialization must actually specializeRichard Smith2013-09-241-0/+29
| | | | | | something, for variable templates. llvm-svn: 191278
* Prior to adding the new "expected-no-diagnostics" directive to ↵Andy Gibbs2012-10-193-0/+3
| | | | | | VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. llvm-svn: 166280
* Update all tests other than Driver/std.cpp to use -std=c++11 rather thanRichard Smith2011-10-132-2/+2
| | | | | | -std=c++0x. Patch by Ahmed Charles! llvm-svn: 141900
* Improve our handling of non-type template parameters in partialDouglas Gregor2011-01-041-0/+26
| | | | | | | | | | | | | specializations. We weren't dealing with any of the cases where the type of the non-type template argument differs from the type of the corresponding template parameter in the primary template. We would think that the template parameter in the partial specialization was not deducible (and warn about it, incorrectly), then fail to convert a deduced parameter to the type of the template parameter in the partial specialization (which may involve truncation, among other things). Fixes PR8905. llvm-svn: 122851
* Unwrap template argument packs when checking the template arguments ofDouglas Gregor2011-01-031-0/+8
| | | | | | | a class template partial specialiation, and look through pack expansions when checking the conditions of C++0x [temp.class.spec]p8. llvm-svn: 122774
* Reimplement the comparison of a class template partialDouglas Gregor2010-12-231-0/+13
| | | | | | | | | | | specialization's template arguments against the primary template's template arguments using the obvious, correct method of checking the injected-class-name type (C++ [temp.class.spec]p9b3). The previous incarnation of this comparison attempted to use its own formulation of the injected-class-name, which is redudant and, with the introduction of variadic templates, became wrong (again). llvm-svn: 122508
* Instantiate class member template partial specialization declarationsDouglas Gregor2010-11-101-0/+21
| | | | | | | | | in the order they occur within the class template, delaying out-of-line member template partial specializations until after the class has been fully instantiated. This fixes a regression introduced by r118454 (itself a fix for PR8001). llvm-svn: 118704
* When performing partial ordering of class template partialDouglas Gregor2010-04-291-0/+32
| | | | | | | | | specializations, substitute the deduced template arguments and check the resulting substitution before concluding that template argument deduction succeeds. This marvelous little fix makes a bunch of Boost.Spirit tests start working. llvm-svn: 102601
* Turn access control on by default in -cc1.John McCall2010-04-091-3/+3
| | | | | | | | Remove -faccess-control from -cc1; add -fno-access-control. Make the driver pass -fno-access-control by default. Update a bunch of tests to be correct under access control. llvm-svn: 100880
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-154-4/+4
| | | | | | | | | - 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
* Cope with extraneous "template" keyword when providing an out-of-lineDouglas Gregor2009-11-201-1/+0
| | | | | | definition of a member template (or a member thereof). Fixes PR5566. llvm-svn: 89512
* Implement support for semantic checking and template instantiation ofDouglas Gregor2009-10-291-2/+37
| | | | | | | | class template partial specializations of member templates. Also, fixes a silly little bug in the marking of "used" template parameters in member templates. Fixes PR5236. llvm-svn: 85447
* Class template partial specializations can be declared anywhere thatDouglas Gregor2009-10-071-0/+20
| | | | | | | | | | its definition may be defined, including in a class. Also, put in an assertion when trying to instantiate a class template partial specialization of a member template, which is not yet implemented. llvm-svn: 83469
* Slightly improved template argument deduction for use in partialDouglas Gregor2009-09-151-0/+16
| | | | | | | ordering, along with another test case for partial ordering of partial specializations. llvm-svn: 81869
* Eli points out that we really must diagnose "void* > 0" as an extension. Chris Lattner2009-08-231-1/+1
| | | | | | | Explicitly add it as an EXTENSION instead of an EXTWARN so that it only comes out with -pedantic. Thanks Eli! llvm-svn: 79791
* Refactor instantiation of destructors to use the common CXXMethodDeclDouglas Gregor2009-08-211-0/+11
| | | | | | | | | | | code, fixing a problem where instantiations of out-of-line destructor definitions would had the wrong lexical context. Introduce tests for out-of-line definitions of the constructors, destructors, and conversion functions of a class template partial specialization. llvm-svn: 79682
* Support out-of-line definitions of the members of class templateDouglas Gregor2009-07-302-0/+40
partial specializations. llvm-svn: 77606
OpenPOWER on IntegriCloud