Skip to content

Commit abf8a81

Browse files
committed
[Mangler] Use abortWithPrettyStackTraceMessage for verification errors
Make sure we include the verification error in the crash log.
1 parent 54023f8 commit abf8a81

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

lib/Basic/Mangler.cpp

+12-8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
#include "swift/Basic/Mangler.h"
1414
#include "swift/Basic/Assertions.h"
15+
#include "swift/Basic/PrettyStackTrace.h"
1516
#include "swift/Demangling/Demangler.h"
1617
#include "swift/Demangling/ManglingMacros.h"
1718
#include "swift/Demangling/Punycode.h"
@@ -201,22 +202,25 @@ void Mangler::verify(StringRef nameStr, ManglingFlavor Flavor) {
201202
Demangler Dem;
202203
NodePointer Root = Dem.demangleSymbol(nameStr);
203204
if (!Root || treeContains(Root, Node::Kind::Suffix)) {
204-
llvm::errs() << "Can't demangle: " << nameStr << '\n';
205-
abort();
205+
abortWithPrettyStackTraceMessage([&](auto &out) {
206+
out << "Can't demangle: " << nameStr;
207+
});
206208
}
207209
auto mangling = mangleNode(Root, Flavor);
208210
if (!mangling.isSuccess()) {
209-
llvm::errs() << "Can't remangle: " << nameStr << '\n';
210-
abort();
211+
abortWithPrettyStackTraceMessage([&](auto &out) {
212+
out << "Can't remangle: " << nameStr;
213+
});
211214
}
212215
std::string Remangled = mangling.result();
213216
if (Remangled == nameStr)
214217
return;
215218

216-
llvm::errs() << "Remangling failed:\n"
217-
"original = " << nameStr << "\n"
218-
"remangled = " << Remangled << "\n";
219-
abort();
219+
abortWithPrettyStackTraceMessage([&](auto &out) {
220+
out << "Remangling failed:\n";
221+
out << "original = " << nameStr << "\n";
222+
out << "remangled = " << Remangled;
223+
});
220224
}
221225

222226
void Mangler::appendIdentifier(StringRef ident, bool allowRawIdentifiers) {

0 commit comments

Comments
 (0)