File tree Expand file tree Collapse file tree 2 files changed +5
-28
lines changed Expand file tree Collapse file tree 2 files changed +5
-28
lines changed Original file line number Diff line number Diff line change @@ -51,15 +51,13 @@ class PrettyStackTraceSwiftVersion : public llvm::PrettyStackTraceEntry {
51
51
};
52
52
53
53
// / Aborts the program, printing a given message to a PrettyStackTrace frame
54
- // / before exiting. This should be preferred over manually logging to stderr and
55
- // / aborting since that won't be picked up by the crash reporter.
54
+ // / before exiting.
56
55
[[noreturn]]
57
56
void abortWithPrettyStackTraceMessage (
58
57
llvm::function_ref<void (llvm::raw_ostream &)> message);
59
58
60
59
// / Aborts the program, printing a given message to a PrettyStackTrace frame
61
- // / before exiting. This should be preferred over manually logging to stderr and
62
- // / aborting since that won't be picked up by the crash reporter.
60
+ // / before exiting.
63
61
[[noreturn]]
64
62
void abortWithPrettyStackTraceMessage (llvm::StringRef message);
65
63
Original file line number Diff line number Diff line change @@ -40,38 +40,17 @@ void PrettyStackTraceSwiftVersion::print(llvm::raw_ostream &out) const {
40
40
out << version::getSwiftFullVersion () << ' \n ' ;
41
41
}
42
42
43
- namespace {
44
- // / Similar to PrettyStackTraceString, but formats multi-line strings for
45
- // / the stack trace.
46
- class PrettyStackTraceMultilineString : public llvm ::PrettyStackTraceEntry {
47
- StringRef Str;
48
-
49
- public:
50
- PrettyStackTraceMultilineString (StringRef str) : Str(str) {}
51
- void print (raw_ostream &OS) const override {
52
- // For each line, add a leading character and indentation to better match
53
- // the formatting of the stack trace.
54
- for (auto c : Str.rtrim (' \n ' )) {
55
- OS << c;
56
- if (c == ' \n ' )
57
- OS << " | \t " ;
58
- }
59
- OS << ' \n ' ;
60
- }
61
- };
62
- } // end anonymous namespace
63
-
64
43
void swift::abortWithPrettyStackTraceMessage (
65
44
llvm::function_ref<void (llvm::raw_ostream &)> message) {
66
45
llvm::SmallString<0 > errorStr;
67
46
llvm::raw_svector_ostream out (errorStr);
68
47
message (out);
69
-
70
- PrettyStackTraceMultilineString trace (errorStr);
48
+ llvm::PrettyStackTraceString trace (errorStr.c_str ());
71
49
abort ();
72
50
}
73
51
74
52
void swift::abortWithPrettyStackTraceMessage (StringRef message) {
75
- PrettyStackTraceMultilineString trace (message);
53
+ auto messageStr = message.str ();
54
+ llvm::PrettyStackTraceString trace (messageStr.c_str ());
76
55
abort ();
77
56
}
You can’t perform that action at this time.
0 commit comments