From 50085b19f4e9702e8987f68a19bc586653e51e31 Mon Sep 17 00:00:00 2001
From: Paul Robinson <paul_robinson@playstation.sony.com>
Date: Wed, 11 Nov 2015 20:49:32 +0000
Subject: [PATCH] Report Windows error code in a fatal error after a system
 call.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252800 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/Support/Windows/Process.inc | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/Support/Windows/Process.inc b/lib/Support/Windows/Process.inc
index 8164956d151..dae35a88132 100644
--- a/lib/Support/Windows/Process.inc
+++ b/lib/Support/Windows/Process.inc
@@ -417,16 +417,23 @@ const char *Process::ResetColor() {
   return 0;
 }
 
+// Include GetLastError() in a fatal error message.
+static void ReportLastErrorFatal(const char *Msg) {
+  std::string ErrMsg;
+  MakeErrMsg(&ErrMsg, Msg);
+  report_fatal_error(ErrMsg);
+}
+
 unsigned Process::GetRandomNumber() {
   HCRYPTPROV HCPC;
   if (!::CryptAcquireContextW(&HCPC, NULL, NULL, PROV_RSA_FULL,
                               CRYPT_VERIFYCONTEXT))
-    report_fatal_error("Could not acquire a cryptographic context");
+    ReportLastErrorFatal("Could not acquire a cryptographic context");
 
   ScopedCryptContext CryptoProvider(HCPC);
   unsigned Ret;
   if (!::CryptGenRandom(CryptoProvider, sizeof(Ret),
                         reinterpret_cast<BYTE *>(&Ret)))
-    report_fatal_error("Could not generate a random number");
+    ReportLastErrorFatal("Could not generate a random number");
   return Ret;
 }
-- 
2.34.1