summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Ayers <andya@microsoft.com>2017-04-21 17:09:07 -0700
committerAndy Ayers <andya@microsoft.com>2017-04-21 17:17:28 -0700
commitf0acfab2c5ecf7896b4f83bd8988fde0779dd849 (patch)
treed6f8e14a27d44d73285cad91b3097170ebd22b0a
parentba865396ef0ec788d36fa9d5fff58ea11bf0a395 (diff)
downloadcoreclr-f0acfab2c5ecf7896b4f83bd8988fde0779dd849.tar.gz
coreclr-f0acfab2c5ecf7896b4f83bd8988fde0779dd849.tar.bz2
coreclr-f0acfab2c5ecf7896b4f83bd8988fde0779dd849.zip
JIT: simple fix for the tail call stress assert
If class handles match, the return types are compatible, no matter what the jit types indicate. Addresses #10047.
-rw-r--r--src/jit/importer.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/jit/importer.cpp b/src/jit/importer.cpp
index 2e3ca81268..c954ad527e 100644
--- a/src/jit/importer.cpp
+++ b/src/jit/importer.cpp
@@ -6216,6 +6216,12 @@ bool Compiler::impTailCallRetTypeCompatible(var_types callerRetType,
return true;
}
+ // If the class handles are the same and not null, the return types are compatible.
+ if ((callerRetTypeClass != nullptr) && (callerRetTypeClass == calleeRetTypeClass))
+ {
+ return true;
+ }
+
#if defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
// Jit64 compat:
if (callerRetType == TYP_VOID)