diff options
author | Nick Desaulniers <ndesaulniers@google.com> | 2023-05-02 15:54:09 -0700 |
---|---|---|
committer | Nick Desaulniers <ndesaulniers@google.com> | 2023-05-02 15:54:09 -0700 |
commit | 3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b (patch) | |
tree | db1435ec6bb8dd51613636968c9a966b46218952 /clang/lib/CodeGen/CodeGenAction.cpp | |
parent | 0fac44d80715ba04a7567346d1832d3b4f019f34 (diff) | |
download | llvm-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.cpp | 9 |
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( |