summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/class-template-id-2.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename clang to clang-cc.Daniel Dunbar2009-03-241-1/+1
| | | | | | Tests and drivers updated, still need to shuffle dirs. llvm-svn: 67602
* Print the context of tag types as part of pretty-printing, e.g.,Douglas Gregor2009-03-191-1/+1
| | | | | | struct N::M::foo llvm-svn: 67284
* Add pretty-printing for class template specializations, e.g.,Douglas Gregor2009-03-101-1/+1
| | | | | | | | | | | | | | | | 'struct A<double, int>' In the "template instantiation depth exceeded" message, print "-ftemplate-depth-N" rather than "-ftemplate-depth=N". An unnamed tag type that is declared with a typedef, e.g., typedef struct { int x, y; } Point; can be used as a template argument. Allow this, and check that we get sensible pretty-printing for such things. llvm-svn: 66560
* Implement the basics of implicit instantiation of class templates, inDouglas Gregor2009-03-031-3/+4
| | | | | | | | | | | | | | | | | | | | response to attempts to diagnose an "incomplete" type. This will force us to use DiagnoseIncompleteType more regularly (rather than looking at isIncompleteType), but that's also a good thing. Implicit instantiation is still very simplistic, and will create a new definition for the class template specialization (as it should) but it only actually instantiates the base classes and attaches those. Actually instantiating class members will follow. Also, instantiate the types of non-type template parameters before checking them, allowing, e.g., template<typename T, T Value> struct Constant; to work properly. llvm-svn: 65924
* Implementing parsing of template-ids as class-names, so that we canDouglas Gregor2009-02-251-0/+23
derive from a class template specialization, e.g., class B : public A<int> { }; llvm-svn: 65488
OpenPOWER on IntegriCloud