summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/instantiate-member-pointers.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Sema: Enforce C++11 pointer-to-member template arguments should rulesDavid Majnemer2013-12-101-1/+8
| | | | | | | | | | | | The standard is pretty clear on what it allows inside of template arguments for non-type template parameters of pointer-to-member. They must be of the form &qualified-id and cannot come from sources like constexpr VarDecls or things of that nature. This fixes PR18192. llvm-svn: 196852
* Enhance the diagnostic for negative array sizes to include theChandler Carruth2011-01-041-1/+1
| | | | | | | | | | | declaration name of the array when present. This ensures that a poor-man's C++03 static_assert will include the user error message often embedded in the name. Update all the tests to reflect the new wording, and add a test for the name behavior. llvm-svn: 122802
* A DeclRefExpr that refers to a member function or a static data memberDouglas Gregor2010-05-111-0/+12
| | | | | | | | | | | | | | of the current instantiation is value-dependent. The C++ standard fails to enumerate this case and, therefore, we missed it. Chandler did all of the hard work of reducing the last remaining Boost.PtrContainer failure (which had to do with static initialization in the Serialization library) down to this simple little test. While I'm at it, clean up the dependence rules for template arguments that are declarations, and implement the dependence rules for template argument packs. llvm-svn: 103464
* 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
* Template argument deduction of a non-type template parameter from aDouglas Gregor2009-11-131-0/+7
| | | | | | template argument. llvm-svn: 88722
* Recognize (and check) pointer-to-member template arguments that areDouglas Gregor2009-11-121-0/+13
| | | | | | | | | non-type template parameters or constants of pointer-to-member type. Once checked, be sure to retain those pointer-to-member constants as expressions if they are dependent, or as declarations if they are not dependent. llvm-svn: 87010
* When instantiating a reference to a non-type template parameter of pointer toDouglas Gregor2009-11-121-1/+9
| | | | | | | | | member type (e.g., T Class::*Member), build a pointer-to-member constant expression. Previously, we we just building a simple declaration reference expression, which meant that the expression was not treated as a pointer to member. llvm-svn: 87000
* Handle member pointer types with dependent class types (e.g., intDouglas Gregor2009-06-091-0/+27
T::*) and implement template instantiation for member pointer types. llvm-svn: 73151
OpenPOWER on IntegriCloud