]> granicus.if.org Git - clang/commitdiff
operator<< on a DiagnosticBuilder should *always* output exactly one thing.
authorJohn McCall <rjmccall@apple.com>
Thu, 5 Aug 2010 04:58:04 +0000 (04:58 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 5 Aug 2010 04:58:04 +0000 (04:58 +0000)
Null template arguments are bad, but they're better than crashing with an
argument mismatch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110312 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/TemplateBase.cpp

index 02e648879ad79fe2a2469d1aa2c7925118754e94..351aebe3f834b904da4208ed04446c46e9c92bda 100644 (file)
@@ -152,7 +152,9 @@ const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB,
                                            const TemplateArgument &Arg) {
   switch (Arg.getKind()) {
   case TemplateArgument::Null:
-    return DB;
+    // This is bad, but not as bad as crashing because of argument
+    // count mismatches.
+    return DB << "(null template argument)";
       
   case TemplateArgument::Type:
     return DB << Arg.getAsType();