History log of /external/clang/test/SemaTemplate/nested-template.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c1826a52ea0e22c521795c4d4a0c2d486825a239 20-Jun-2013 Eli Friedman <eli.friedman@gmail.com> Add test.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
cddbc1d5872c96cd8c3ad3ddededa304757270d7 06-Sep-2012 Richard Smith <richard-llvm@metafoo.co.uk> Don't try to check override control for invalid member functions. Fixes a crash in a corner case. Patch by Olivier Goffart!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
ea9f54aefc0cbf963df8b79028775a39bcf7393f 01-Nov-2011 Douglas Gregor <dgregor@apple.com> When we see an out-of-line definition of a member class template that
does not match any declaration in the class (or class template), be
sure to mark it as invalid. Fixes PR10924 / <rdar://problem/10119422>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
f250365ce65412d7d4e331fccf042b6e974c2f14 21-Sep-2011 Douglas Gregor <dgregor@apple.com> Diagnose attempts to write a templated data member, from Stepan
Dyatkovskiy! Fixes PR10896.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
a5728872c7702ddd09537c95bc3cbd20e1f2fb09 15-Dec-2009 Daniel Dunbar <daniel@zuster.org> Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
- 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).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
9148c3f5829f4d031249faeb1043e7be914539e8 11-Nov-2009 Douglas Gregor <dgregor@apple.com> Before checking a template template argument against its corresponding
template template parameter, substitute any prior template arguments
into the template template parameter. This, for example, allows us to
properly check the template template argument for a class such as:

template<typename T, template<T Value> class X> struct Foo;

The actual implementation of this feature was trivial; most of the
change is dedicated to giving decent diagnostics when this
substitution goes horribly wrong. We now get a note like:

note: while substituting prior template arguments into template
template parameter 'X' [with T = float]

As part of this change, enabled some very pedantic checking when
comparing template template parameter lists, which shook out a bug in
our overly-eager checking of default arguments of template template
parameters. We now perform only minimal checking of such default
arguments when they are initially parsed.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
9106ef78f8fcc9df1a60c7a5b64c7d967194207e 11-Nov-2009 Douglas Gregor <dgregor@apple.com> Instantiation of template template parameters for nested templates, e.g.,

template<typename T>
struct X {
template<template<T Value> class Y> struct Inner;
};



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
33642df30088f2ddb0b22c609523ab8df9dff595 24-Oct-2009 Douglas Gregor <dgregor@apple.com> Implement template instantiation for non-type template
parameters. Fixes PR5103.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
1cdcc579df30dba1b2e1e9909125bb9c61898e05 10-Sep-2009 Douglas Gregor <dgregor@apple.com> When re-entering a template scope, we may be entering a class template
partial specialization rather than a subclass of TemplateDecl. Fixes a
crash in libstdc++ 4.2's <map>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
dacd434c49658286c380c7b4c357d76d53cb4aa1 26-Aug-2009 Douglas Gregor <dgregor@apple.com> Improve diagnostics and recovery when the nested-name-specifier of a
qualified name does not actually refer into a class/class
template/class template partial specialization.

Improve printing of nested-name-specifiers to eliminate redudant
qualifiers. Also, make it possible to output a nested-name-specifier
through a DiagnosticBuilder, although there are relatively few places
that will use this leeway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
bc047ba73376ac6ef78b3fba0efb8493f7843138 26-Aug-2009 Douglas Gregor <dgregor@apple.com> Test out-of-line definition of a static data member of a member class of a nested class template. Phew

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
c131ebb5cb509838462f9dcf680948dbfaf89d0f 26-Aug-2009 Douglas Gregor <dgregor@apple.com> Test out-of-line definitions of static data members of nested member class templates

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
495c35d291da48c4f5655bbb54d15128ddde0d4d 26-Aug-2009 Douglas Gregor <dgregor@apple.com> Improve support for out-of-line definitions of nested templates and
their members, including member class template, member function
templates, and member classes and functions of member templates.

To actually parse the nested-name-specifiers that qualify the name of
an out-of-line definition of a member template, e.g.,

template<typename X> template<typename Y>
X Outer<X>::Inner1<Y>::foo(Y) {
return X();
}

we need to look for the template names (e.g., "Inner1") as a member of
the current instantiation (Outer<X>), even before we have entered the
scope of the current instantiation. Since we can't do this in general
(i.e., we should not be looking into all dependent
nested-name-specifiers as if they were the current instantiation), we
rely on the parser to tell us when it is parsing a declaration
specifier sequence, and, therefore, when we should consider the
current scope specifier to be a current instantiation.

Printing of complicated, dependent nested-name-specifiers may be
somewhat broken by this commit; I'll add tests for this issue and fix
the problem (if it still exists) in a subsequent commit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
05396e20d68535612f58c84e0dfc7647c75a7da1 25-Aug-2009 Douglas Gregor <dgregor@apple.com> Implement out-of-line definitions of nested class templates. Most of
the logic is there for out-of-line definitions with multiple levels of
nested templates, but this is still a work-in-progress: we're having
trouble determining when we should look into a dependent
nested-name-specifier.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
c3058338075a2132e057f1249a13b55a81fe021c 25-Aug-2009 Douglas Gregor <dgregor@apple.com> Keep track of the template parameter depth properly when we have
member templates declared inside other templates. This allows us to
match out-of-line definitions of member function templates within
class templates to the declarations within the class template. We
still can't handle out-of-line definitions for member class templates,
however.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
c19ee3eb08ce1d77504d5fc27f7c44b94543221b 18-Jun-2009 Douglas Gregor <dgregor@apple.com> Diagnose class members that shadow a template parameter. Fixes
<rdar://problem/6952203>.

To do this, we actually remove a not-quite-correct optimization in the
C++ name lookup routines. We'll revisit this optimization for the
general case once more C++ is working.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp
551f48c2d96c8a519feb195d34a691c8b97b3994 27-Mar-2009 Douglas Gregor <dgregor@apple.com> Tests and fixes for templates declared within (non-template)
classes. Test case from Anders Carlsson, fix from Piotr Rak!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/nested-template.cpp