[clang] 7805ae2 - Revert "[clang-diff] Fix assertion error when dealing with wide strings"
Douglas Yung via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 7 14:59:24 PDT 2022
Author: Douglas Yung
Date: 2022-06-07T14:58:10-07:00
New Revision: 7805ae257f6babf51c4290d0ff80c1c47b173def
URL: https://github.com/llvm/llvm-project/commit/7805ae257f6babf51c4290d0ff80c1c47b173def
DIFF: https://github.com/llvm/llvm-project/commit/7805ae257f6babf51c4290d0ff80c1c47b173def.diff
LOG: Revert "[clang-diff] Fix assertion error when dealing with wide strings"
This reverts commit e80748ff8840a10bd7c7336eb5e98664480ba1ba.
This was causing a test failure on a buildbot: https://lab.llvm.org/buildbot/#/builders/139/builds/22964
Added:
Modified:
clang/lib/Tooling/ASTDiff/ASTDiff.cpp
clang/test/Tooling/clang-diff-ast.cpp
Removed:
################################################################################
diff --git a/clang/lib/Tooling/ASTDiff/ASTDiff.cpp b/clang/lib/Tooling/ASTDiff/ASTDiff.cpp
index 786def58076a3..0821863adcc6e 100644
--- a/clang/lib/Tooling/ASTDiff/ASTDiff.cpp
+++ b/clang/lib/Tooling/ASTDiff/ASTDiff.cpp
@@ -16,7 +16,6 @@
#include "clang/Basic/SourceManager.h"
#include "clang/Lex/Lexer.h"
#include "llvm/ADT/PriorityQueue.h"
-#include "llvm/Support/ConvertUTF.h"
#include <limits>
#include <memory>
@@ -464,29 +463,8 @@ std::string SyntaxTree::Impl::getStmtValue(const Stmt *S) const {
}
if (auto *D = dyn_cast<DeclRefExpr>(S))
return getRelativeName(D->getDecl(), getEnclosingDeclContext(AST, S));
- if (auto *String = dyn_cast<StringLiteral>(S)) {
- if (String->isWide() || String->isUTF16() || String->isUTF32()) {
- std::string UTF8Str;
- unsigned int NumChars = String->getLength();
- const char *Bytes = String->getBytes().data();
- if (String->isWide()) {
- const auto *Chars = reinterpret_cast<const wchar_t *>(Bytes);
- if (!convertWideToUTF8({Chars, NumChars}, UTF8Str))
- return "";
- } else if (String->isUTF16()) {
- const auto *Chars = reinterpret_cast<const UTF16 *>(Bytes);
- if (!convertUTF16ToUTF8String({Chars, NumChars}, UTF8Str))
- return "";
- } else {
- assert(String->isUTF32() && "Unsupported string encoding.");
- const auto *Chars = reinterpret_cast<const UTF32 *>(Bytes);
- if (!convertUTF32ToUTF8String({Chars, NumChars}, UTF8Str))
- return "";
- }
- return UTF8Str;
- }
+ if (auto *String = dyn_cast<StringLiteral>(S))
return std::string(String->getString());
- }
if (auto *B = dyn_cast<CXXBoolLiteralExpr>(S))
return B->getValue() ? "true" : "false";
return "";
diff --git a/clang/test/Tooling/clang-
diff -ast.cpp b/clang/test/Tooling/clang-
diff -ast.cpp
index e67128a098ef1..a8efda50a4052 100644
--- a/clang/test/Tooling/clang-
diff -ast.cpp
+++ b/clang/test/Tooling/clang-
diff -ast.cpp
@@ -47,12 +47,6 @@ class X : Base {
if (i == 0)
// CHECK: StringLiteral: foo(
return "foo";
- // CHECK: StringLiteral: wide(
- (void)L"wide";
- // CHECK: StringLiteral: utf-16(
- (void)u"utf-16";
- // CHECK: StringLiteral: utf-32(
- (void)U"utf-32";
// CHECK-NOT: ImplicitCastExpr
return 0;
}
More information about the cfe-commits
mailing list