RFR: 8332903: ubsan: opto/output.cpp:1002:18: runtime error: load of value 171, which is not a valid value for type 'bool'

Dean Long dlong at openjdk.org
Thu Jun 13 00:28:13 UTC 2024


On Wed, 12 Jun 2024 13:47:25 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> When building with ubsan on linuxppc64le we run into the issue below; seems some initialization is missing.
>  
> /jdk/src/hotspot/share/opto/output.cpp:1002:18: runtime error: load of value 171, which is not a valid value for type 'bool'
>     #0 0x7fff8f52b71c in PhaseOutput::Process_OopMap_Node(MachNode*, int) (/jdk/lib/server/libjvm.so+0x74cb71c)
>     #1 0x7fff8f530ab4 in PhaseOutput::fill_buffer(C2_MacroAssembler*, unsigned int*) (/jdk/lib/server/libjvm.so+0x74d0ab4)
>     #2 0x7fff8f53c740 in PhaseOutput::Output() (/jdk/lib/server/libjvm.so+0x74dc740)
>     #3 0x7fff8d5b6350 in Compile::Code_Gen() (/jdk/lib/server/libjvm.so+0x5556350)
>     #4 0x7fff8d5be730 in Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*) (/jdk/lib/server/libjvm.so+0x555e730)
>     #5 0x7fff8cfe7434 in C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*) (/jdk/lib/server/libjvm.so+0x4f87434)
>     #6 0x7fff8d5e3bf4 in CompileBroker::invoke_compiler_on_method(CompileTask*) (/jdk/lib/server/libjvm.so+0x5583bf4)
>     #7 0x7fff8d5e5a74 in CompileBroker::compiler_thread_loop() (/jdk/lib/server/libjvm.so+0x5585a74)
>     #8 0x7fff8d6403c0 in CompilerThread::thread_entry(JavaThread*, JavaThread*) (/jdk/lib/server/libjvm.so+0x55e03c0)
>     #9 0x7fff8e428810 in JavaThread::thread_main_inner() (/jdk/lib/server/libjvm.so+0x63c8810)
>     #10 0x7fff900992e8 in Thread::call_run() (/jdk/lib/server/libjvm.so+0x80392e8)
>     #11 0x7fff8f4a6a08 in thread_native_entry(Thread*) (/jdk/lib/server/libjvm.so+0x7446a08)
>     #12 0x7fff95139714 in start_thread (/lib64/libpthread.so.0+0x9714)
>     #13 0x7fff944eb774 in __GI___clone (/lib64/libc.so.6+0x13b774)
>    ... (rest of output omitted)

src/hotspot/share/opto/machnode.hpp line 940:

> 938:   bool      _method_handle_invoke;   // Tells if the call has to preserve SP
> 939:   bool      _arg_escape;             // ArgEscape in parameter list
> 940:   MachCallJavaNode() : MachCallNode(), _override_symbolic_info(false), _arg_escape(false) {

If we need to initialize one bool, then we probably need to initialize them all.  However, I think something else is going wrong to make this appear only on one platform.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19677#discussion_r1637298078


More information about the hotspot-compiler-dev mailing list