impDevirtualizeCall uses gtEffectiveVal when accessing 'this', indicating that we may see commas here:
|
GenTree* thisObj = call->gtCallThisArg->GetNode()->gtEffectiveVal(false); |
Later in the function we do an optimization for boxes where we replace 'this' without taking commas into account:
|
call->gtCallThisArg = gtNewCallArgs(localCopyThis); |
|
call->gtCallThisArg = gtNewCallArgs(localCopyThis); |
#67238 adds an assert that we didn't actually have a comma here, but this might not be right.
category:correctness
theme:devirtualization
skill-level:beginner
cost:small
impact:small
impDevirtualizeCallusesgtEffectiveValwhen accessing 'this', indicating that we may see commas here:runtime/src/coreclr/jit/importer.cpp
Line 21094 in 3b6a539
Later in the function we do an optimization for boxes where we replace 'this' without taking commas into account:
runtime/src/coreclr/jit/importer.cpp
Line 21456 in 3b6a539
runtime/src/coreclr/jit/importer.cpp
Line 21517 in 3b6a539
#67238 adds an assert that we didn't actually have a comma here, but this might not be right.
category:correctness
theme:devirtualization
skill-level:beginner
cost:small
impact:small