From 521985553ad010a66a197ddcc4c90813b22378bd Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sat, 14 Nov 2009 14:14:58 +0000 Subject: [PATCH] Make NORETURN working with MSVC. MSVC only accepts NORETURN in front of the decl so move it there. GCC accepts it both in front and after decls. llvm-svn: 88791 --- include/llvm/Support/Compiler.h | 2 ++ include/llvm/Support/ErrorHandling.h | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/llvm/Support/Compiler.h b/include/llvm/Support/Compiler.h index 342a97d761e..67770c35d24 100644 --- a/include/llvm/Support/Compiler.h +++ b/include/llvm/Support/Compiler.h @@ -58,6 +58,8 @@ #ifdef __GNUC__ #define NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define NORETURN __declspec(noreturn) #else #define NORETURN #endif diff --git a/include/llvm/Support/ErrorHandling.h b/include/llvm/Support/ErrorHandling.h index 67bccf09269..60677951a25 100644 --- a/include/llvm/Support/ErrorHandling.h +++ b/include/llvm/Support/ErrorHandling.h @@ -60,15 +60,15 @@ namespace llvm { /// standard error, followed by a newline. /// After the error handler is called this function will call exit(1), it /// does not return. - void llvm_report_error(const char *reason) NORETURN; - void llvm_report_error(const std::string &reason) NORETURN; - void llvm_report_error(const Twine &reason) NORETURN; + NORETURN void llvm_report_error(const char *reason); + NORETURN void llvm_report_error(const std::string &reason); + NORETURN void llvm_report_error(const Twine &reason); /// This function calls abort(), and prints the optional message to stderr. /// Use the llvm_unreachable macro (that adds location info), instead of /// calling this function directly. - void llvm_unreachable_internal(const char *msg=0, const char *file=0, - unsigned line=0) NORETURN; + NORETURN void llvm_unreachable_internal(const char *msg=0, + const char *file=0, unsigned line=0); } /// Prints the message and location info to stderr in !NDEBUG builds.