https://bugs.kde.org/show_bug.cgi?id=514876

            Bug ID: 514876
           Summary: x86: Handle F32 Iex_ITE expression
    Classification: Developer tools
           Product: valgrind
      Version First 3.27 GIT
       Reported In:
          Platform: unspecified
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: vex
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

SUMMARY
Running a 32-bit x86 Linux binary under valgrind produces a fatal error:

ITE(t69,t31,GET:F32(160))
vex: the `impossible' happened:
   iselFltExpr_wrk

STEPS TO REPRODUCE
1. Using clang 21.1.6, compile the attached source file for 32-bit x86 with -O:
`clang -g -O -m32 bug-vgx86f32ite.c` (The issue does not occur when compiled
with gcc 15.2.1.)
2. valgrind ./a.out
3. Valgrind produces a fatal error

OBSERVED RESULT
==1334040== Memcheck, a memory error detector
==1334040== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
==1334040== Using Valgrind-3.26.0 and LibVEX; rerun with -h for copyright info
==1334040== Command: ./a.out
==1334040== 
ITE(t69,t31,GET:F32(160))
vex: the `impossible' happened:
   iselFltExpr_wrk
vex storage: T total 102182960 bytes allocated
vex storage: P total 496 bytes allocated

valgrind: the 'impossible' happened:
   LibVEX called failure_exit().

host stacktrace:
==1334040==    at 0x5803D665: show_sched_status_wrk (m_libcassert.c:426)
==1334040==    by 0x5803D7C0: report_and_quit (m_libcassert.c:497)
==1334040==    by 0x5803D941: panic (m_libcassert.c:572)
==1334040==    by 0x5803D941: vgPlain_core_panic_at (m_libcassert.c:577)
==1334040==    by 0x5803D95A: vgPlain_core_panic (m_libcassert.c:582)
==1334040==    by 0x5805363C: failure_exit (m_translate.c:761)
==1334040==    by 0x5815A6A3: vpanic (main_util.c:253)
==1334040==    by 0x581C075E: iselFltExpr_wrk (host_x86_isel.c:3037)
==1334040==    by 0x581C075E: iselFltExpr (host_x86_isel.c:2953)
==1334040==    by 0x581C150F: iselStmt (host_x86_isel.c:4096)
==1334040==    by 0x581C150F: iselSB_X86 (host_x86_isel.c:4640)
==1334040==    by 0x581581A4: libvex_BackEnd (main_main.c:1157)
==1334040==    by 0x581581A4: LibVEX_Translate (main_main.c:1294)
==1334040==    by 0x58055F5F: vgPlain_translate (m_translate.c:1835)
==1334040==    by 0x580982D8: handle_chain_me (scheduler.c:1172)
==1334040==    by 0x5809AC42: vgPlain_scheduler (scheduler.c:1568)
==1334040==    by 0x5810490E: thread_wrapper (syswrap-linux.c:102)
==1334040==    by 0x5810490E: run_a_thread_NORETURN (syswrap-linux.c:154)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable (lwpid 1334040)
==1334040==    at 0x400128C: main (vgmoc.c:14)
client stack range: [0xFEFFB000 0xFEFFDFFF] client SP: 0xFEFFD970
valgrind stack range: [0x82E82000 0x82F81FFF] top usage: 9420 of 1048576


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.

EXPECTED RESULT
Valgrind is expected to complete successfully.

SOFTWARE/OS VERSIONS
The issue occurs with Valgrind 3.26.0 and with current git master.
Linux 6.18.2, glibc 2.42.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to