File tree Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -310,14 +310,17 @@ var_types Compiler::impImportCall(OPCODE opcode,
310
310
// complex expression. As it is evaluated after the args,
311
311
// it may cause registered args to be spilled. Simply spill it.
312
312
//
313
- unsigned const lclNum = lvaGrabTemp (true DEBUGARG (" VirtualCall with runtime lookup" ));
314
- if (compDonotInline ())
313
+ if (!stubAddr->OperIs (GT_LCL_VAR))
315
314
{
316
- return TYP_UNDEF;
317
- }
315
+ unsigned const lclNum = lvaGrabTemp (true DEBUGARG (" VirtualCall with runtime lookup" ));
316
+ if (compDonotInline ())
317
+ {
318
+ return TYP_UNDEF;
319
+ }
318
320
319
- impStoreToTemp (lclNum, stubAddr, CHECK_SPILL_NONE);
320
- stubAddr = gtNewLclvNode (lclNum, TYP_I_IMPL);
321
+ impStoreToTemp (lclNum, stubAddr, CHECK_SPILL_NONE);
322
+ stubAddr = gtNewLclvNode (lclNum, TYP_I_IMPL);
323
+ }
321
324
322
325
// Create the actual call node
323
326
You can’t perform that action at this time.
0 commit comments