On Wed, May 22, 2024 at 9:21 AM Roger Sayle <ro...@nextmovesoftware.com> wrote: > > > A number of testcases currently fail on nvptx with the ICE: > > during RTL pass: final > openmp-simd-2.c: In function 'foo': > openmp-simd-2.c:28:1: internal compiler error: in get_personality_function, > at expr.cc:14037 > 28 | } > | ^ > 0x98a38f get_personality_function(tree_node*) > /home/roger/GCC/nvptx-none/gcc/gcc/expr.cc:14037 > 0x969d3b output_function_exception_table(int) > /home/roger/GCC/nvptx-none/gcc/gcc/except.cc:3226 > 0x9b760d rest_of_handle_final > /home/roger/GCC/nvptx-none/gcc/gcc/final.cc:4252 > > The simple oversight in output_function_exception_table is that it calls > get_personality_function (immediately) before checking the target's > except_unwind_info hook (which on nvptx always returns UI_NONE). > The (perhaps obvious) fix is to move the assignments of fname and > personality after the tests that they are needed, and before their > first use. > > This patch has been tested on nvptx-none hosted on x86_64-pc-linux-gnu > with no new failures in the testsuite, and ~220 fewer FAILs. > Ok for mainline?
OK. Richard. > 2024-05-22 Roger Sayle <ro...@nextmovesoftware.com> > > gcc/ChangeLog > * except.cc (output_function_exception_table): Move call to > get_personality_function after targetm_common.except_unwind_info > check, to avoid ICE on targets that don't support exceptions. > > > Thanks in advance, > Roger > -- >