CoreRT shows a problem with inlined tail calls. #8258
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
bug
Milestone
Run ILC in Release mode with Debug RyuJit with such test:
Set ngenDump for GetAttributeConstructor, you will see:
and
Call 67 will be marked as tail call, but the morph condition for the return statement doesn't expect a cast and will blow up.
It works fine with the release mode of the jit.
I am not yet sure about the right fix, but there is strange code in fgMorphCall:
It is inside the
#ifdef Debug
branch, that initially contained only assert checks, but some real code was added recently (#9405). @AndyAyersMS Is it right that we peel casts only in debug and only for the call node, but not for the return statement?cc @MichalStrehovsky @dotnet/jit-contrib.
The text was updated successfully, but these errors were encountered: