On Sat, Jun 21, 2025 at 2:12 PM Takayuki 'January June' Suwa <jjsuwa_sys3...@yahoo.co.jp> wrote: > > That hook has since been deprecated > (commit a670ebde3995481225ec62b29686ec07a21e5c10) and has led to incorrect > results on Xtensa: > > /* example */ > #define <stdint.h> > uint32_t __attribute__((noinline)) test0(uint32_t a, uint16_t b) { > return a + b; > } > uint32_t __attribute__((noinline)) test1(uint32_t a, uint32_t b) { > return test0(a, b); > } > > ;; before (-mabi=call0) > test0: > add.n a2, a3, a2 > ret.n > test1: > sext a3, a3, 15 ;; NG, do not sign-extend > j.l test0, a9 > > ;; after (-mabi=call0) > test0: > extui a3, a3, 0, 16 ;; OK > add.n a2, a3, a2 > ret.n > test1: > j.l test0, a9 > > With this patch, the result is consistent with other targets such as > AArch64. > > gcc/ChangeLog: > > * config/xtensa/xtensa.cc > (TARGET_PROMOTE_PROTOTYPES, TARGET_PROMOTE_FUNCTION_MODE): > Remove. > --- > gcc/config/xtensa/xtensa.cc | 5 ----- > 1 file changed, 5 deletions(-)
This results in a bunch of ICEs with the following backtrace: libstdc++-v3/src/filesystem/ops.cc:780:29: internal compiler error: in expand_call, at calls.cc:3930 780 | return fs::equiv_files(p1.c_str(), st1, p2.c_str(), st2, ec); | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x1fb63ff internal_error(char const*, ...) gcc/diagnostic-global-context.cc:517 0x969aa8 fancy_abort(char const*, int, char const*) gcc/diagnostic.cc:1803 0x76de1d expand_call(tree_node*, rtx_def*, int) gcc/calls.cc:3930 0xe7dd2e expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) gcc/expr.cc:12479 0xe89bf7 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier) gcc/expr.h:323 0xe89bf7 store_expr(tree_node*, rtx_def*, int, bool, bool) gcc/expr.cc:6645 0xe8b7df expand_assignment(tree_node*, tree_node*, bool) gcc/expr.cc:6483 0xd50e9d expand_call_stmt gcc/cfgexpand.cc:3149 0xd50e9d expand_gimple_stmt_1 gcc/cfgexpand.cc:4223 0xd50e9d expand_gimple_stmt gcc/cfgexpand.cc:4370 0xd51b95 expand_gimple_basic_block gcc/cfgexpand.cc:6433 0xd53d26 execute gcc/cfgexpand.cc:7181 -- Thanks. -- Max