sdk
sdk copied to clipboard
Failures on Allow (e as dynamic).foo() in avoid_dynamic_calls...[cfe] Include offended version number and package name in too high/low version message
There are new test failures on Allow (e as dynamic).foo() in avoid_dynamic_calls...[cfe] Include offended version number and package name in too high/low version message.
The tests
vm/cc/BoundsCheckElimination_Pragma Crash (expected Pass)
vm/cc/BoundsCheckElimination_Pragma_learning Crash (expected Pass)
vm/cc/BoundsCheckElimination_Pragma_learning_control Crash (expected Pass)
are failing on configurations
vm-linux-debug-ia32
vm-linux-release-ia32
vm-win-release-ia32
LOGS:
--- Command "run_vm_unittest" (took 03.000216s):
DART_CONFIGURATION=DebugIA32 out/DebugIA32/run_vm_tests --dfe=/b/s/w/ir/cache/builder/sdk/out/DebugIA32/gen/kernel_service.dill --sound-null-safety --ignore-unrecognized-flags BoundsCheckElimination_Pragma_learning
exit code:
-6
stdout:
Running test: BoundsCheckElimination_Pragma_learning
stderr:
../../runtime/vm/compiler/backend/inliner.cc: 1457: error: unreachable code
version=3.7.0-edge (main) (Unknown timestamp) on "linux_ia32"
pid=74674, thread=74674, isolate_group=isolate(0x5b2eda30), isolate=isolate(0x5b2f13f0)
os=linux, arch=ia32, comp=no, sim=no
isolate_instructions=586a3d20, vm_instructions=586a3d20
fp=ff89e788, sp=ff89e6f8, pc=58e5e73b
pc 0x58e5e73b fp 0xff89e788 dart::Profiler::DumpStackTrace+0x9b
pc 0x594c9c41 fp 0xff89e7a8 Dart_DumpNativeStackTrace+0x21
pc 0x58ba3866 fp 0xff89e7d8 dart::Assert::Fail+0x36
pc 0x5936a290 fp 0xff89eb08 dart::CallSiteInliner::TryInliningImpl+0x1d50
pc 0x59364942 fp 0xff89ebb8 dart::CallSiteInliner::TryInlining+0xf2
pc 0x5936e62b fp 0xff89ec78 dart::CallSiteInliner::InlineStaticCalls+0x56b
pc 0x59367f59 fp 0xff89ed48 dart::CallSiteInliner::InlineCalls+0x279
pc 0x59367b08 fp 0xff89edf8 dart::FlowGraphInliner::Inline+0x208
pc 0x593d5e26 fp 0xff89ee48 dart::CompilerPass_Inlining::DoBody+0x46
pc 0x593d53e6 fp 0xff89eef8 dart::CompilerPass::Run+0x1d6
pc 0x593d5896 fp 0xff89ef38 dart::CompilerPass::RunPipeline+0xb6
pc 0x5899a197 fp 0xff89efc8 dart::TestPipeline::RunPasses+0x257
pc 0x589c55e9 fp 0xff89f4d8 dart::Dart_TestBoundsCheckElimination_Pragma_learning+0x199
pc 0x586a5c1f fp 0xff89f4e8 dart::TestCase::Run+0x2f
pc 0x586a5d30 fp 0xff89f528 dart::TestCaseBase::RunTest+0x60
pc 0x588fe9e5 fp 0xff89f558 dart::TestCaseBase::RunAll+0x35
pc 0x586a61b3 fp 0xff89f5e8 dart::Main+0x343
pc 0x586a5e61 fp 0xff89f608 main+0x21
-- End of DumpStackTrace
=== Crash occurred when compiling unknown function in AOT mode in Inlining pass
*** BEGIN CFG
Inlining
==== file:///test-lib_::_test (RegularFunction)
B0[graph]:0 {
v0 <- Constant(#null)
v1 <- Constant(#<optimized out>)
v3 <- Constant(#10) T{_Smi}
v5 <- Constant(#5) T{_Smi}
}
B1[function entry]:2 {
v2 <- Parameter(0 @fp[2]) T{Uint8List}
}
CheckStackOverflow:8(stack=0, loop=0)
DebugStepCheck:10()
v4 <- StaticCall:12( load<0> v2, v3) T{int}
v6 <- InstanceCall:14( []<0>, v2, v5 IC[0: ]) T{X0?}
v7 <- InstanceCall:16( +<0>, v4, v6 IC[0: ]) T{num}
DebugStepCheck:18()
DartReturn:20(v7)
*** END CFG
--- Re-run this test:
python3 tools/test.py -n vm-linux-debug-ia32 vm/cc/BoundsCheckElimination_Pragma_learning
This issue could be related to https://github.com/dart-lang/sdk/issues/56909
CC @bkonyi @derekxu16
Summary: The issue is a crash in the BoundsCheckElimination_Pragma_learning test on IA32 architectures. The crash occurs during the inlining pass and results in an "unreachable code" error. This issue might be related to a previous issue about dynamic calls.
FYI @rakudrama, this seems related to https://dart-review.googlesource.com/c/sdk/+/389620.
@rakudrama AOT mode is not supported on ia32, can you modify your test to not run it on IA32.