Minor fix to address ?: VC conformance improvement. (dotnet/coreclr#10208)
authorYuriy Solodkyy <solodon4@users.noreply.github.com>
Thu, 16 Mar 2017 04:55:53 +0000 (21:55 -0700)
committerJan Kotas <jkotas@microsoft.com>
Thu, 16 Mar 2017 04:55:53 +0000 (21:55 -0700)
Visual C++ has made some conformance changes to conditional operator
that will be available under /permissive- and which make the inference of
result type of the conditional operator in these 2 places ambiguous. This
happens because the class type in one of the arguments provides both: the
constructor from and the conversion operator to T - LCWSTR here.

Commit migrated from https://github.com/dotnet/coreclr/commit/67f40646d76d914ab7f099df25768c73c4f55bad

src/coreclr/src/vm/dwreport.cpp
src/coreclr/src/vm/eventreporter.cpp

index 95d7172..b95c59f 100644 (file)
@@ -2468,7 +2468,7 @@ FaultReportResult DoFaultReportWorker(      // Was Watson attempted, successful?
             {   // Look for final '\'
                 pName = wcsrchr(buf, W('\\'));
                 // If found, skip it; if not, point to full name.
-                pName = pName ? pName+1 : buf;
+                pName = pName ? pName+1 : (LPCWSTR)buf;
             }
         }
 
index a96c525..c73af36 100644 (file)
@@ -64,7 +64,7 @@ EventReporter::EventReporter(EventReporterType type)
     {
         // If app name has a '\', consider the part after that; otherwise consider whole name.
         LPCWSTR appName =  wcsrchr(appPath, W('\\'));
-        appName = appName ? appName+1 : appPath;
+        appName = appName ? appName+1 : (LPCWSTR)appPath;
         m_Description.Append(appName);
         m_Description.Append(W("\n"));
     }