<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>