<div dir="rtl"><div dir="ltr">Hi Hans,</div><div dir="ltr"><br></div><div dir="ltr">This looks good to me. </div><div dir="ltr"><br></div><div dir="ltr">What is the advantage of building clang.exe as a 64-bit app?</div><div dir="ltr">
<br></div><div dir="ltr">Yaron</div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div dir="ltr">2013/10/10 Hans Wennborg <span dir="ltr"><<a href="mailto:hans@hanshq.net" target="_blank">hans@hanshq.net</a>></span></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: hans<br>
Date: Wed Oct 9 18:41:48 2013<br>
New Revision: 192331<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=192331&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=192331&view=rev</a><br>
Log:<br>
Use KEY_WOW64_32KEY when reading the registry in WindowsToolChain.cpp (PR17033)<br>
<br>
This exposes a 32-bit view of the registry even when Clang is built as a 64-bit<br>
program. Since Visual Studio is a 32-bit application, this is necessary for us<br>
to find it.<br>
<br>
Modified:<br>
cfe/trunk/lib/Driver/WindowsToolChain.cpp<br>
<br>
Modified: cfe/trunk/lib/Driver/WindowsToolChain.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/WindowsToolChain.cpp?rev=192331&r1=192330&r2=192331&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/WindowsToolChain.cpp?rev=192331&r1=192330&r2=192331&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/WindowsToolChain.cpp (original)<br>
+++ cfe/trunk/lib/Driver/WindowsToolChain.cpp Wed Oct 9 18:41:48 2013<br>
@@ -126,7 +126,8 @@ static bool getSystemRegistryString(cons<br>
strncpy(partialKey, subKey, partialKeyLength);<br>
partialKey[partialKeyLength] = '\0';<br>
HKEY hTopKey = NULL;<br>
- lResult = RegOpenKeyEx(hRootKey, partialKey, 0, KEY_READ, &hTopKey);<br>
+ lResult = RegOpenKeyEx(hRootKey, partialKey, 0, KEY_READ | KEY_WOW64_32KEY,<br>
+ &hTopKey);<br>
if (lResult == ERROR_SUCCESS) {<br>
char keyName[256];<br>
int bestIndex = -1;<br>
@@ -159,7 +160,8 @@ static bool getSystemRegistryString(cons<br>
strncat(bestName, nextKey, sizeof(bestName) - 1);<br>
bestName[sizeof(bestName) - 1] = '\0';<br>
// Open the chosen key path remainder.<br>
- lResult = RegOpenKeyEx(hTopKey, bestName, 0, KEY_READ, &hKey);<br>
+ lResult = RegOpenKeyEx(hTopKey, bestName, 0, KEY_READ | KEY_WOW64_32KEY,<br>
+ &hKey);<br>
if (lResult == ERROR_SUCCESS) {<br>
lResult = RegQueryValueEx(hKey, valueName, NULL, &valueType,<br>
(LPBYTE)value, &valueSize);<br>
@@ -171,7 +173,8 @@ static bool getSystemRegistryString(cons<br>
RegCloseKey(hTopKey);<br>
}<br>
} else {<br>
- lResult = RegOpenKeyEx(hRootKey, subKey, 0, KEY_READ, &hKey);<br>
+ lResult = RegOpenKeyEx(hRootKey, subKey, 0, KEY_READ | KEY_WOW64_32KEY,<br>
+ &hKey);<br>
if (lResult == ERROR_SUCCESS) {<br>
lResult = RegQueryValueEx(hKey, valueName, NULL, &valueType,<br>
(LPBYTE)value, &valueSize);<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>