summaryrefslogtreecommitdiff
path: root/lib/Support/Windows/Process.inc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Support/Windows/Process.inc')
-rw-r--r--lib/Support/Windows/Process.inc5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Support/Windows/Process.inc b/lib/Support/Windows/Process.inc
index 18aef610d54a..3fe9f89f1ef5 100644
--- a/lib/Support/Windows/Process.inc
+++ b/lib/Support/Windows/Process.inc
@@ -129,9 +129,10 @@ Optional<std::string> Process::GetEnv(StringRef Name) {
size_t Size = MAX_PATH;
do {
Buf.reserve(Size);
+ SetLastError(NO_ERROR);
Size =
- GetEnvironmentVariableW(NameUTF16.data(), Buf.data(), Buf.capacity());
- if (Size == 0)
+ GetEnvironmentVariableW(NameUTF16.data(), Buf.data(), Buf.capacity());
+ if (Size == 0 && GetLastError() == ERROR_ENVVAR_NOT_FOUND)
return None;
// Try again with larger buffer.