|
12 | 12 |
|
13 | 13 | #include "swift/Basic/Mangler.h"
|
14 | 14 | #include "swift/Basic/Assertions.h"
|
| 15 | +#include "swift/Basic/PrettyStackTrace.h" |
15 | 16 | #include "swift/Demangling/Demangler.h"
|
16 | 17 | #include "swift/Demangling/ManglingMacros.h"
|
17 | 18 | #include "swift/Demangling/Punycode.h"
|
@@ -201,22 +202,25 @@ void Mangler::verify(StringRef nameStr, ManglingFlavor Flavor) {
|
201 | 202 | Demangler Dem;
|
202 | 203 | NodePointer Root = Dem.demangleSymbol(nameStr);
|
203 | 204 | 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 | + }); |
206 | 208 | }
|
207 | 209 | auto mangling = mangleNode(Root, Flavor);
|
208 | 210 | if (!mangling.isSuccess()) {
|
209 |
| - llvm::errs() << "Can't remangle: " << nameStr << '\n'; |
210 |
| - abort(); |
| 211 | + abortWithPrettyStackTraceMessage([&](auto &out) { |
| 212 | + out << "Can't remangle: " << nameStr; |
| 213 | + }); |
211 | 214 | }
|
212 | 215 | std::string Remangled = mangling.result();
|
213 | 216 | if (Remangled == nameStr)
|
214 | 217 | return;
|
215 | 218 |
|
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 | + }); |
220 | 224 | }
|
221 | 225 |
|
222 | 226 | void Mangler::appendIdentifier(StringRef ident, bool allowRawIdentifiers) {
|
|
0 commit comments