-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Open
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Description
impDevirtualizeCall uses gtEffectiveVal when accessing 'this', indicating that we may see commas here:
runtime/src/coreclr/jit/importer.cpp
Line 21094 in 3b6a539
| 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:
runtime/src/coreclr/jit/importer.cpp
Line 21456 in 3b6a539
| call->gtCallThisArg = gtNewCallArgs(localCopyThis); |
runtime/src/coreclr/jit/importer.cpp
Line 21517 in 3b6a539
| 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
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI