Skip to content

Commit 02a8f24

Browse files
authored
Merge pull request #74797 from hamishknight/respect-sigint
2 parents 8e914d7 + 3910c87 commit 02a8f24

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/DriverTool/driver.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
#include "llvm/TargetParser/Host.h"
5151
#include "llvm/TargetParser/Triple.h"
5252

53+
#include <csignal>
5354
#include <memory>
5455
#include <stdlib.h>
5556

@@ -460,6 +461,11 @@ int swift::mainEntry(int argc_, const char **argv_) {
460461
llvm::transform(utf8Args, std::back_inserter(utf8CStrs),
461462
std::mem_fn(&std::string::c_str));
462463
argv_ = utf8CStrs.data();
464+
#else
465+
// Set SIGINT to the default handler, ensuring we exit. This needs to be set
466+
// before PROGRAM_START/INITIALIZE_LLVM since LLVM will set its own signal
467+
// handler that does some cleanup before delegating to the original handler.
468+
std::signal(SIGINT, SIG_DFL);
463469
#endif
464470
// Expand any response files in the command line argument vector - arguments
465471
// may be passed through response files in the event of command line length

0 commit comments

Comments
 (0)