Improve workaround description and limit it to just MS compiler
authorEugene Zemtsov <Eugene.Zemtsov@microsoft.com>
Fri, 13 Feb 2015 23:40:00 +0000 (15:40 -0800)
committerEugene Zemtsov <Eugene.Zemtsov@microsoft.com>
Fri, 13 Feb 2015 23:40:00 +0000 (15:40 -0800)
[tfs-changeset: 1415470]

src/debug/di/process.cpp

index 7f243a8..fcf9d8f 100644 (file)
@@ -9742,9 +9742,10 @@ void CordbProcess::MarshalManagedEvent(DebuggerIPCEvent * pManagedEvent)
 //    The event still needs to be Marshaled before being used. (see code:CordbProcess::MarshalManagedEvent)
 //
 //---------------------------------------------------------------------------------------
-#ifdef _TARGET_ARM_
-// This is a temporary workaround for an ARM specific C++ compiler bug.
-// It should be removed once the bug is fixed.
+#if defined(_MSC_VER) && defined(_TARGET_ARM_) 
+// This is a temporary workaround for an ARM specific MS C++ compiler bug (internal LKG build 18.1).
+// Branch < if (ptrRemoteManagedEvent == NULL) > was always taken and the function always returned false.
+// TODO: It should be removed once the bug is fixed.
 #pragma optimize("", off)
 #endif
 bool CordbProcess::CopyManagedEventFromTarget(
@@ -9793,7 +9794,7 @@ bool CordbProcess::CopyManagedEventFromTarget(
 
     return true;
 }
-#ifdef _TARGET_ARM_
+#if defined(_MSC_VER) && defined(_TARGET_ARM_) 
 #pragma optimize("", on)
 #endif