Rakete1111 created this revision.
Rakete1111 added a project: clang.

This patch removes the empty `""` when using `static_assert(1 + 1 == 3, "");` 
in the diagnostic:

  main.cpp:1:1: error: static_assert failed
  static_assert(1 + 1 == 3, "");
  ^             ~~~~~~~~~~


https://reviews.llvm.org/D39360

Files:
  lib/Sema/SemaDeclCXX.cpp


Index: lib/Sema/SemaDeclCXX.cpp
===================================================================
--- lib/Sema/SemaDeclCXX.cpp
+++ lib/Sema/SemaDeclCXX.cpp
@@ -13319,8 +13319,9 @@
                                          Expr *AssertExpr,
                                          Expr *AssertMessageExpr,
                                          SourceLocation RParenLoc) {
-  StringLiteral *AssertMessage =
-      AssertMessageExpr ? cast<StringLiteral>(AssertMessageExpr) : nullptr;
+  auto *AssertMessage = cast_or_null<StringLiteral>(AssertMessageExpr);
+  if (AssertMessage && !AssertMessage->getLength())
+    AssertMessage = nullptr;
 
   if (DiagnoseUnexpandedParameterPack(AssertExpr, UPPC_StaticAssertExpression))
     return nullptr;


Index: lib/Sema/SemaDeclCXX.cpp
===================================================================
--- lib/Sema/SemaDeclCXX.cpp
+++ lib/Sema/SemaDeclCXX.cpp
@@ -13319,8 +13319,9 @@
                                          Expr *AssertExpr,
                                          Expr *AssertMessageExpr,
                                          SourceLocation RParenLoc) {
-  StringLiteral *AssertMessage =
-      AssertMessageExpr ? cast<StringLiteral>(AssertMessageExpr) : nullptr;
+  auto *AssertMessage = cast_or_null<StringLiteral>(AssertMessageExpr);
+  if (AssertMessage && !AssertMessage->getLength())
+    AssertMessage = nullptr;
 
   if (DiagnoseUnexpandedParameterPack(AssertExpr, UPPC_StaticAssertExpression))
     return nullptr;
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to