From a06a49ba08ee8ce26dedf185dd99a539d254996a Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Mon, 4 Jun 2018 09:51:14 +0600 Subject: [PATCH] Fix error during compilation with /permissive- --- src/classlibnative/bcltype/grisu3.h | 4 ++-- src/inc/winrt/paraminstanceapi.h | 2 +- src/jit/lsra.h | 2 +- src/vm/dllimport.cpp | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/classlibnative/bcltype/grisu3.h b/src/classlibnative/bcltype/grisu3.h index dbbec06212c7..b3c5a40efacb 100644 --- a/src/classlibnative/bcltype/grisu3.h +++ b/src/classlibnative/bcltype/grisu3.h @@ -33,7 +33,7 @@ class Grisu3 static void CachedPower(int k, DiyFp* cmk, int* decimalExponent); static bool DigitGen(const DiyFp& mp, int count, wchar_t* buffer, int* len, int* k); static bool RoundWeed(wchar_t* buffer, int len, UINT64 rest, UINT64 tenKappa, UINT64 ulp, int* kappa); - static void Grisu3::BiggestPowerTenLessThanOrEqualTo(UINT32 number, int bits, UINT32 *power, int *exponent); + static void BiggestPowerTenLessThanOrEqualTo(UINT32 number, int bits, UINT32 *power, int *exponent); // 1/lg(10) static const double D_1_LOG2_10; @@ -158,4 +158,4 @@ class Grisu3 }; }; -#endif \ No newline at end of file +#endif diff --git a/src/inc/winrt/paraminstanceapi.h b/src/inc/winrt/paraminstanceapi.h index 81ee4c51c908..1a8dde13d7ce 100644 --- a/src/inc/winrt/paraminstanceapi.h +++ b/src/inc/winrt/paraminstanceapi.h @@ -419,7 +419,7 @@ namespace Ro { namespace detail { __in_ecount(size) const T* src, size_t size) { - for (size_t i = 0; i != _size; ++i) + for (size_t i = 0; i != size; ++i) { dst[i] = src[i]; } diff --git a/src/jit/lsra.h b/src/jit/lsra.h index 3e70332e9c50..cc8f1caca89a 100644 --- a/src/jit/lsra.h +++ b/src/jit/lsra.h @@ -1587,7 +1587,7 @@ class LinearScan : public LinearScanInterface void setDelayFree(RefPosition* use); int BuildBinaryUses(GenTreeOp* node, regMaskTP candidates = RBM_NONE); #ifdef _TARGET_XARCH_ - int LinearScan::BuildRMWUses(GenTreeOp* node, regMaskTP candidates = RBM_NONE); + int BuildRMWUses(GenTreeOp* node, regMaskTP candidates = RBM_NONE); #endif // !_TARGET_XARCH_ // This is the main entry point for building the RefPositions for a node. // These methods return the number of sources. diff --git a/src/vm/dllimport.cpp b/src/vm/dllimport.cpp index d77604b44e41..d5376f146038 100644 --- a/src/vm/dllimport.cpp +++ b/src/vm/dllimport.cpp @@ -6110,8 +6110,9 @@ static void DetermineLibNameVariations(const WCHAR** libNameVariations, int* num // LoadLibrary won't append extension if filename itself contains '.'. Thus it will break the following scenario: // [DllImport("A.B")] // The full name for file is "A.B.dll". This is common code pattern for cross-platform PInvoke // The workaround for above scenario is to call LoadLibrary with "A.B" first, if it fails, then call LoadLibrary with "A.B.dll" + auto it = libName.Begin(); if (!libNameIsRelativePath || - !libName.Find(libName.Begin(), W('.')) || + !libName.Find(it, W('.')) || libName.EndsWith(W(".")) || libName.EndsWithCaseInsensitive(W(".dll")) || libName.EndsWithCaseInsensitive(W(".exe")))