diff options
| author | Yong He <yonghe@outlook.com> | 2023-06-01 13:53:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-01 13:53:31 -0700 |
| commit | 16cd361dd67471bcc355d1b3b72b0b022518088f (patch) | |
| tree | fa3a7d5b77ccf09f9340b78e66610ba8b751c855 /source/slang/slang-stdlib.cpp | |
| parent | a7ed48b2e6da9bf952aa11ec0d57acf9688bbb0e (diff) | |
Be lenient on same-size unsigend->signed conversion. (#2913)
* Be lenient on same-size unsigend->signed conversion.
* Fix tests.
* Use 250.
* wip
* Fix.
* Fix tests.
* Fix.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-stdlib.cpp')
| -rw-r--r-- | source/slang/slang-stdlib.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/slang/slang-stdlib.cpp b/source/slang/slang-stdlib.cpp index 1f8d0a97a..a31c77985 100644 --- a/source/slang/slang-stdlib.cpp +++ b/source/slang/slang-stdlib.cpp @@ -156,6 +156,15 @@ namespace Slang { return kConversionCost_UnsignedToSignedPromotion; } + // Same-size unsigned to signed integer conversion. + else if (toInfo.conversionKind == kBaseTypeConversionKind_Signed + && fromInfo.conversionKind == kBaseTypeConversionKind_Unsigned + && toInfo.conversionRank == fromInfo.conversionRank + && toInfo.conversionRank != kBaseTypeConversionRank_IntPtr + && fromInfo.conversionRank != kBaseTypeConversionRank_IntPtr) + { + return kConversionCost_SameSizeUnsignedToSignedConversion; + } // Conversion from signed to unsigned is always lossy, // but it is preferred over conversions from unsigned |
