diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2025-06-04 08:48:40 +0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2025-06-04 15:30:36 +0800 |
commit | f7df645956459c559f254d622090d4dd09159890 (patch) | |
tree | fb2bfef339c4920185d89ad66997b188049b04f1 /libstdc++-v3/testsuite/std | |
parent | afa2de8093a0cd47394df42c7092aa6a357d2f9c (diff) | |
download | gcc-f7df645956459c559f254d622090d4dd09159890.zip gcc-f7df645956459c559f254d622090d4dd09159890.tar.gz gcc-f7df645956459c559f254d622090d4dd09159890.tar.bz2 |
Use MEM_EXPR only if MEM_P is true
On s390x, for input:
(call_insn/u 7 6 11 2 (parallel [
(set (reg:SI 2 %r2)
(call (subreg:QI (symbol_ref:SI ("__tls_get_offset") [flags 0x1]) 3)
(const_int 0 [0])))
(clobber (reg:SI 14 %r14))
(use (unspec:SI [
(const_int 0 [0])
] UNSPEC_TLSLDM))
]) "/tmp/foo.c":12:26 2602 {*brasl_tls}
(expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000])
(nil))
(expr_list (use (reg:SI 2 %r2))
(expr_list (use (reg:SI 12 %r12))
(nil))))
after r16-1041-g2da641d0170090, get_call_rtx_from returns:
(call (subreg:QI (symbol_ref:SI ("__tls_get_offset") [flags 0x1]) 3)
(const_int 0 [0]))
and we got
Program received signal SIGSEGV, Segmentation fault.
0x000000000131174f in prepare_call_arguments (
bb=<basic_block 0x7fffe99dfba0 (2)>, insn=0x7fffe980cc60)
at /export/gnu/import/git/sources/gcc/gcc/var-tracking.cc:6277
6277 fndecl = MEM_EXPR (XEXP (call, 0));
(gdb) bt
bb=<basic_block 0x7fffe99dfba0 (2)>, insn=0x7fffe980cc60)
at /export/gnu/import/git/sources/gcc/gcc/var-tracking.cc:6277
at /export/gnu/import/git/sources/gcc/gcc/var-tracking.cc:10297
at /export/gnu/import/git/sources/gcc/gcc/var-tracking.cc:10526
at /export/gnu/import/git/sources/gcc/gcc/var-tracking.cc:10579
at /export/gnu/import/git/sources/gcc/gcc/var-tracking.cc:10616
Update prepare_call_arguments to check MEM_P before using MEM_EXPR.
gcc/
PR debug/120525
* var-tracking.cc (prepare_call_arguments): Use MEM_EXPR only
if MEM_P is true.
gcc/testsuite/
PR debug/120525
* gcc.dg/pr120525.c: New test.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'libstdc++-v3/testsuite/std')
0 files changed, 0 insertions, 0 deletions