diff --git a/clang/lib/Tooling/ASTDiff/ASTDiff.cpp b/clang/lib/Tooling/ASTDiff/ASTDiff.cpp index 786def58076a30..0821863adcc6e7 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 #include @@ -464,29 +463,8 @@ std::string SyntaxTree::Impl::getStmtValue(const Stmt *S) const { } if (auto *D = dyn_cast(S)) return getRelativeName(D->getDecl(), getEnclosingDeclContext(AST, S)); - if (auto *String = dyn_cast(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(Bytes); - if (!convertWideToUTF8({Chars, NumChars}, UTF8Str)) - return ""; - } else if (String->isUTF16()) { - const auto *Chars = reinterpret_cast(Bytes); - if (!convertUTF16ToUTF8String({Chars, NumChars}, UTF8Str)) - return ""; - } else { - assert(String->isUTF32() && "Unsupported string encoding."); - const auto *Chars = reinterpret_cast(Bytes); - if (!convertUTF32ToUTF8String({Chars, NumChars}, UTF8Str)) - return ""; - } - return UTF8Str; - } + if (auto *String = dyn_cast(S)) return std::string(String->getString()); - } if (auto *B = dyn_cast(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 e67128a098ef1e..a8efda50a4052e 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; }