|
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