Skip to content

JIT: impDevirtualizeCall might discard commas #67982

@jakobbotsch

Description

@jakobbotsch

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

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions