aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenAction.cpp
diff options
context:
space:
mode:
authorNick Desaulniers <ndesaulniers@google.com>2023-05-02 15:54:09 -0700
committerNick Desaulniers <ndesaulniers@google.com>2023-05-02 15:54:09 -0700
commit3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b (patch)
treedb1435ec6bb8dd51613636968c9a966b46218952 /clang/lib/CodeGen/CodeGenAction.cpp
parent0fac44d80715ba04a7567346d1832d3b4f019f34 (diff)
downloadllvm-3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b.zip
llvm-3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b.tar.gz
llvm-3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b.tar.bz2
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.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenAction.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenAction.cpp9
1 files changed, 5 insertions, 4 deletions
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(