From 3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Tue, 2 May 2023 15:54:09 -0700 Subject: Revert "[Demangle] make llvm::demangle take std::string_view rather than const std::string&" This reverts commit c117c2c8ba4afd45a006043ec6dd858652b2ffcc. itaniumDemangle calls std::strlen with the results of std::string_view::data() which may not be NUL-terminated. This causes lld/test/wasm/why-extract.s to fail when "expensive checks" are enabled via -DLLVM_ENABLE_EXPENSIVE_CHECKS=ON. See D149675 for further discussion. Back this out until the individual demanglers are converted to use std::string_view. --- clang/lib/CodeGen/CodeGenAction.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'clang/lib/CodeGen/CodeGenAction.cpp') diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp index b054147..29adf88 100644 --- a/clang/lib/CodeGen/CodeGenAction.cpp +++ b/clang/lib/CodeGen/CodeGenAction.cpp @@ -633,8 +633,9 @@ BackendConsumer::StackSizeDiagHandler(const llvm::DiagnosticInfoStackSize &D) { return false; Diags.Report(*Loc, diag::warn_fe_frame_larger_than) - << D.getStackSize() << D.getStackLimit() - << llvm::demangle(D.getFunction().getName()); + << D.getStackSize() + << D.getStackLimit() + << llvm::demangle(D.getFunction().getName().str()); return true; } @@ -648,7 +649,7 @@ bool BackendConsumer::ResourceLimitDiagHandler( Diags.Report(*Loc, DiagID) << D.getResourceName() << D.getResourceSize() << D.getResourceLimit() - << llvm::demangle(D.getFunction().getName()); + << llvm::demangle(D.getFunction().getName().str()); return true; } @@ -853,7 +854,7 @@ void BackendConsumer::DontCallDiagHandler(const DiagnosticInfoDontCall &D) { Diags.Report(LocCookie, D.getSeverity() == DiagnosticSeverity::DS_Error ? diag::err_fe_backend_error_attr : diag::warn_fe_backend_warning_attr) - << llvm::demangle(D.getFunctionName()) << D.getNote(); + << llvm::demangle(D.getFunctionName().str()) << D.getNote(); } void BackendConsumer::MisExpectDiagHandler( -- cgit v1.1