diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-10-14 23:41:34 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-10-14 23:41:34 +0000 |
| commit | e47f5a76ccd74c13d5c319e12720275ef58a84fc (patch) | |
| tree | 604fe426fd2171a88f77f98b6758bfe5acc4a3c4 /clang/include | |
| parent | 2f61e0946a9e3fe24d102e13d02a07f44b2728ba (diff) | |
| download | bcm5719-llvm-e47f5a76ccd74c13d5c319e12720275ef58a84fc.tar.gz bcm5719-llvm-e47f5a76ccd74c13d5c319e12720275ef58a84fc.zip | |
Additional semantic checking for explicit template instantiations,
focusing on the scope- and qualifier-related semantic requirements in
C++ [temp.explicit]p2.
llvm-svn: 84154
Diffstat (limited to 'clang/include')
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index d799bb52b98..4845314743f 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -1085,6 +1085,9 @@ def note_nontemplate_decl_here : Note< "non-templated declaration is here">; def err_explicit_instantiation_out_of_scope : Error< "explicit instantiation of %0 not in a namespace enclosing %1">; +def err_explicit_instantiation_must_be_global : Error< + "explicit instantiation of %0 must occur at global scope">; + def err_explicit_instantiation_requires_name : Error< "explicit instantiation declaration requires a name">; def err_explicit_instantiation_of_typedef : Error< @@ -1106,6 +1109,12 @@ def note_explicit_instantiation_candidate : Note< "explicit instantiation candidate function template here %0">; def err_explicit_instantiation_inline : Error< "explicit instantiation cannot be 'inline'">; +def err_explicit_instantiation_without_qualified_id : Error< + "qualifier in explicit instantiation of %q0 requires a template-id">; +def err_explicit_instantiation_without_qualified_id_quals : Error< + "qualifier in explicit instantiation of '%0%1' requires a template-id">; +def err_explicit_instantiation_unqualified_wrong_namespace : Error< + "explicit instantiation of %q0 must occur in %1">; // C++ typename-specifiers def err_typename_nested_not_found : Error<"no type named %0 in %1">; |

