4b02dff7aebb98d2d60b2ff4d3fc86109213128c |
|
05-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Add quotation marks to template names in diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
0576681bac125be07f77f66b02a3dba2c3a24557 |
|
18-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR41111, PR5925, PR13210: Teach tentative parsing to annotate identifiers and nested names as id-expressions, using the annot_primary_expr annotation, where possible. This removes some redundant lookups, and also allows us to typo-correct within tentative parsing, and to carry on disambiguating past an identifier which we can determine will fail lookup as both a type and as a non-type, allowing us to disambiguate more declarations (and thus offer improved error recovery for such cases). This also introduces to the parser the notion of a tentatively-declared name, which is an identifier which we *might* have seen a declaration for in a tentative parse (but only if we end up disambiguating the tokens as a declaration). This is necessary to correctly disambiguate cases where a variable is used within its own initializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
2f69a816a0986caa24d8e4273a3f83420b05f707 |
|
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
"const std::vector<int>*" not "std::vector<int> const*" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
207014eb2b372aa33721e86d90a8a586ba8dc8ae |
|
30-Jul-2010 |
John McCall <rjmccall@apple.com> |
Improve error recovery when presented with an ill-formed template-id (e.g. due to a broken template argument) following template parameters. Fixes rdar://problem/8254267 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
18ef5e28a9a2677f8b1dce1fb2638d66e0a1621f |
|
18-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Switch the initialization required by return statements over to the new InitializationSequence. This fixes some bugs (e.g., PR5808), changed some diagnostics, and caused more churn than expected. What's new: - InitializationSequence now has a "C conversion sequence" category and step kind, which falls back to - Changed the diagnostics for returns to always have the result type of the function first and the type of the expression second. CheckSingleAssignmentConstraints to peform checking in C. - Improved ASTs for initialization of return values. The ASTs now capture all of the temporaries we need to create, but intentionally do not bind the tempoary that is actually returned, so that it won't get destroyed twice. - Make sure to perform an (elidable!) copy of the class object that is returned from a class. - Fix copy elision in CodeGen to properly see through the subexpressions that occur with elidable copies. - Give "new" its own entity kind; as with return values and thrown objects, we don't bind the expression so we don't call a destructor for it. Note that, with this patch, I've broken returning move-only types in C++0x. We'll fix it later, when we tackle NRVO. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.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/class-template-id.cpp
|
9af2f52fbcb993350f54e57d498e7849ba29c75d |
|
01-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Don't automatically assume that an id-expression refers to a ValueDecl, because that isn't always the case in ill-formed code. Diagnose a common mistake (forgetting to provide a template argument list for a class template, PR5655) and dyn_cast so that we handle the general problem of referring to a non-value declaration gracefully. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
9135c72fd17bf313072fa12cfe66eb2437ef8e9d |
|
25-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix parsing of template classes prefixed by nested-name-specifiers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
d7d5f0223bd30dfd618762349c6209dd1d5ea3e6 |
|
24-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename clang to clang-cc. Tests and drivers updated, still need to shuffle dirs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
a35b1d5f1d02c19d44d7a41b1971b97eefb79d41 |
|
18-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Small sanity-checking testcase git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
3e00bad490f1bae8a2c60f934e7eb5dbb9752c5d |
|
17-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Added ClassTemplateSpecializationDecl, which is a subclass of CXXRecordDecl that is used to represent class template specializations. These are canonical declarations that can refer to either an actual class template specialization in the code, e.g., template<> class vector<bool> { }; or to a template instantiation. However, neither of these features is actually implemented yet, so really we're just using (and uniqing) the declarations to make sure that, e.g., A<int> is a different type from A<float>. Note that we carefully distinguish between what the user wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it represents (e.g., "A<float, int>"); the former is in the sugared Type, the latter is an actual Decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|
55f6b14230c94272efbbcdd89a92224c8db9f225 |
|
09-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Start processing template-ids as types when the template-name refers to a class template. For example, the template-id 'vector<int>' now has a nice, sugary type in the type system. What we can do now: - Parse template-ids like 'vector<int>' (where 'vector' names a class template) and form proper types for them in the type system. - Parse icky template-ids like 'A<5>' and 'A<(5 > 0)>' properly, using (sadly) a bool in the parser to tell it whether '>' should be treated as an operator or not. This is a baby-step, with major problems and limitations: - There are currently two ways that we handle template arguments (whether they are types or expressions). These will be merged, and, most likely, TemplateArg will disappear. - We don't have any notion of the declaration of class template specializations or of template instantiations, so all template-ids are fancy names for 'int' :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/class-template-id.cpp
|