diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2012-12-18 23:32:47 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2012-12-18 23:32:47 +0000 |
| commit | 40ea264c25250abf6f209183167448475c33fc19 (patch) | |
| tree | 01ff57def38b24a3a0b3ef37b33eff59befc5629 /clang/lib/AST/ASTDiagnostic.cpp | |
| parent | d742533dbc43f54798becb48ed7d3a2d97cf8150 (diff) | |
| download | bcm5719-llvm-40ea264c25250abf6f209183167448475c33fc19.tar.gz bcm5719-llvm-40ea264c25250abf6f209183167448475c33fc19.zip | |
Fix a crash in diagnostic printing when a template class type is diff'ed
against itself. PR14489.
llvm-svn: 170474
Diffstat (limited to 'clang/lib/AST/ASTDiagnostic.cpp')
| -rw-r--r-- | clang/lib/AST/ASTDiagnostic.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/AST/ASTDiagnostic.cpp b/clang/lib/AST/ASTDiagnostic.cpp index 31c1fbf1b78..a61abf7e34c 100644 --- a/clang/lib/AST/ASTDiagnostic.cpp +++ b/clang/lib/AST/ASTDiagnostic.cpp @@ -1125,7 +1125,12 @@ class TemplateDiff { TemplateDecl *FromTD, *ToTD; Tree.GetNode(FromTD, ToTD); - assert(Tree.HasChildren() && "Template difference not found in diff tree."); + if (!Tree.HasChildren()) { + // If we're dealing with a template specialization with zero + // arguments, there are no children; special-case this. + OS << FromTD->getNameAsString() << "<>"; + return; + } Qualifiers FromQual, ToQual; Tree.GetNode(FromQual, ToQual); |

