summaryrefslogtreecommitdiffstats
path: root/clang/include
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-10-14 23:41:34 +0000
committerDouglas Gregor <dgregor@apple.com>2009-10-14 23:41:34 +0000
commite47f5a76ccd74c13d5c319e12720275ef58a84fc (patch)
tree604fe426fd2171a88f77f98b6758bfe5acc4a3c4 /clang/include
parent2f61e0946a9e3fe24d102e13d02a07f44b2728ba (diff)
downloadbcm5719-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.td9
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">;
OpenPOWER on IntegriCloud