diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-12-04 00:47:45 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-12-04 00:47:45 +0000 |
commit | f95fe9b870e6b459d69b87b34621579752bc0bbe (patch) | |
tree | 2c00f55f3de25c8588be0f49af14d30ff8fa33e3 /clang/lib/Sema | |
parent | 17e0d9ee6cc7668d6dc4d7b14789a07bf6e0cd75 (diff) | |
download | bcm5719-llvm-f95fe9b870e6b459d69b87b34621579752bc0bbe.tar.gz bcm5719-llvm-f95fe9b870e6b459d69b87b34621579752bc0bbe.zip |
Fix crash if a variable template specialization is used in a nested-name-specifier.
llvm-svn: 196335
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/SemaCXXScopeSpec.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaCXXScopeSpec.cpp b/clang/lib/Sema/SemaCXXScopeSpec.cpp index 13c9993bf4c..58bde02d602 100644 --- a/clang/lib/Sema/SemaCXXScopeSpec.cpp +++ b/clang/lib/Sema/SemaCXXScopeSpec.cpp @@ -775,15 +775,15 @@ bool Sema::ActOnCXXNestedNameSpecifier(Scope *S, return false; } - // FIXME: Variable templates + TemplateDecl *TD = Template.get().getAsTemplateDecl(); if (Template.get().getAsOverloadedTemplate() || DTN || - isa<FunctionTemplateDecl>(Template.get().getAsTemplateDecl())) { + isa<FunctionTemplateDecl>(TD) || isa<VarTemplateDecl>(TD)) { SourceRange R(TemplateNameLoc, RAngleLoc); if (SS.getRange().isValid()) R.setBegin(SS.getRange().getBegin()); Diag(CCLoc, diag::err_non_type_template_in_nested_name_specifier) - << Template.get() << R; + << (TD && isa<VarTemplateDecl>(TD)) << Template.get() << R; NoteAllFoundTemplates(Template.get()); return true; } |