The visitTableCopy and visitTableFill guards in LLVMMemoryCopyFillLowering are defined with an uppercase V:
void VisitTableCopy(TableCopy* curr) {
Fatal() << "table.copy instruction found...";
}
void VisitTableFill(TableCopy* curr) { // also wrong param type
Fatal() << "table.fill instruction found...";
}
The PostWalker dispatches to lowercase visit* methods, so these are never called. The pass silently ignores table.copy and table.fill instructions instead of producing the intended error.
There is also a wrong parameter type: VisitTableFill takes TableCopy* instead of TableFill*.
The working visitor methods in the same file (visitMemoryCopy, visitMemoryFill) use lowercase v.
Fix: #8291
The
visitTableCopyandvisitTableFillguards inLLVMMemoryCopyFillLoweringare defined with an uppercaseV:The PostWalker dispatches to lowercase
visit*methods, so these are never called. The pass silently ignorestable.copyandtable.fillinstructions instead of producing the intended error.There is also a wrong parameter type:
VisitTableFilltakesTableCopy*instead ofTableFill*.The working visitor methods in the same file (
visitMemoryCopy,visitMemoryFill) use lowercasev.Fix: #8291