https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121593

--- Comment #14 from Marc Mutz <marc.mutz at hotmail dot com> ---
C++ build gives me also a crash, this time with a nicer backtrace:

```
********* Start testing of tst_QXmlStream *********
Config: Using QtTest library 6.11.0, Qt 6.11.0 (x86_64-little_endian-lp64
shared (dynamic) release build; by GCC 15.2.1 20250819), ubuntu 20.04
QDEBUG : tst_QXmlStream::initTestCase() copyDir
"/home/marc/Qt/qtbase-submit/tests/auto/corelib/serialization/qxmlstream/XML-Test-Suite"
-> "/tmp/tst_qxmlstream-KOOsyA/XML-Test-Suite"
QDEBUG : tst_QXmlStream::initTestCase() copyDir finished in 0 seconds
PASS   : tst_QXmlStream::initTestCase()
Received signal 11 (SIGSEGV), code SEGV_MAPERR, at instruction address
0x00007fddd222f186, accessing address 0x0000000000000001
         writerAutoEmptyTags function time: 0ms, total time: 88ms

=== Stack trace ===
[New LWP 1852278]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fddd1987c7f in __GI___wait4 (pid=1852279, stat_loc=0x0, options=0,
usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
27      ../sysdeps/unix/sysv/linux/wait4.c: No such file or directory.
warning: File "/d/gcc/15/lib64/libstdc++.so.6.0.34-gdb.py" auto-loading has
been declined by your `auto-load safe-path' set to
"$debugdir:$datadir/auto-load".
To enable execution of this file add
        add-auto-load-safe-path /d/gcc/15/lib64/libstdc++.so.6.0.34-gdb.py
line to your configuration file "/home/marc/.gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "/home/marc/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"
   0x7fddd222f186
<QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits>(char8_t const*&,
char8_t const*, char32_t)+6>:        movzbl (%rcx),%edx

Thread 2 (Thread 0x7fddce745700 (LWP 1852278)):
#0  futex_abstimed_wait_cancelable (private=<optimized out>,
abstime=0x7fddce744ca0, clockid=<optimized out>, expected=0,
futex_word=0x7ffe0b7c59c4) at ../sysdeps/nptl/futex-internal.h:320
#1  __pthread_cond_wait_common (abstime=0x7fddce744ca0, clockid=<optimized
out>, mutex=0x7ffe0b7c5970, cond=0x7ffe0b7c5998) at pthread_cond_wait.c:520
#2  __pthread_cond_clockwait (abstime=0x7fddce744ca0, clockid=<optimized out>,
mutex=0x7ffe0b7c5970, cond=0x7ffe0b7c5998) at pthread_cond_wait.c:686
#3  __pthread_cond_clockwait (cond=0x7ffe0b7c5998, mutex=0x7ffe0b7c5970,
clockid=<optimized out>, abstime=0x7fddce744ca0) at pthread_cond_wait.c:674
#4  0x00007fddd26088be in std::__condvar::wait_until (this=<error reading
variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
__m=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF
expression.>, __clock=<error reading variable: dwarf2_find_location_expression:
Corrupted DWARF expression.>, __abs_time=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>) at
/d/gcc/15/include/c++/15.2.1/bits/std_mutex.h:187
#5  std::condition_variable::__wait_until_impl<std::chrono::duration<long,
std::ratio<1l, 1000000000l> > > (__lock=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>, this=<error
reading variable: dwarf2_find_location_expression: Corrupted DWARF
expression.>, __atime=...) at
/d/gcc/15/include/c++/15.2.1/condition_variable:205
#6  std::condition_variable::wait_until<std::chrono::duration<long,
std::ratio<1l, 1000000000l> > > (this=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>, __lock=<error
reading variable: dwarf2_find_location_expression: Corrupted DWARF
expression.>, __atime=...) at
/d/gcc/15/include/c++/15.2.1/condition_variable:115
#7  std::condition_variable::wait_until<std::chrono::_V2::steady_clock,
std::chrono::duration<long, std::ratio<1l, 1000000000l> >,
QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&,
QTest::WatchDog::Expectation)::{lambda()#1}>(std::unique_lock<std::mutex>&,
std::chrono::time_point<std::chrono::_V2::steady_clock,
std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&,
QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&,
QTest::WatchDog::Expectation)::{lambda()#1}) (this=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>, __lock=<error
reading variable: dwarf2_find_location_expression: Corrupted DWARF
expression.>, __atime=..., __p=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>) at
/d/gcc/15/include/c++/15.2.1/condition_variable:156
#8  std::condition_variable::wait_for<long, std::ratio<1l, 1000l>,
QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&,
QTest::WatchDog::Expectation)::{lambda()#1}>(std::unique_lock<std::mutex>&,
std::chrono::duration<long, std::ratio<1l, 1000l> > const&,
QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&,
QTest::WatchDog::Expectation)::{lambda()#1}) (__rtime=..., this=<error reading
variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
__lock=<error reading variable: dwarf2_find_location_expression: Corrupted
DWARF expression.>, __p=...) at
/d/gcc/15/include/c++/15.2.1/condition_variable:179
#9  QTest::WatchDog::waitFor (this=<optimized out>, m=..., e=14) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1154
#10 QTest::WatchDog::run (this=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1218
#11 0x00007fddd227949e in operator() (__closure=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/corelib/thread/qthread_unix.cpp:435
#12 (anonymous
namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
(t=...) at /home/marc/Qt/qtbase-submit/src/corelib/thread/qthread_unix.cpp:367
#13 QThreadPrivate::start (arg=0x7ffe0b7c5960) at
/home/marc/Qt/qtbase-submit/src/corelib/thread/qthread_unix.cpp:395
#14 0x00007fddd1ea2609 in start_thread (arg=<optimized out>) at
pthread_create.c:477
#15 0x00007fddd19c4353 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fddced128c0 (LWP 1852277)):
#0  0x00007fddd1987c7f in __GI___wait4 (pid=1852279, stat_loc=0x0, options=0,
usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
#1  0x00007fddd2628a65 in QTest::CrashHandler::generateStackTrace
(ip=140590690005382) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcrashhandler_unix.cpp:482
#2  0x00007fddd26293de in QTest::CrashHandler::generateStackTrace (ip=<error
reading variable: dwarf2_find_location_expression: Corrupted DWARF
expression.>) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcrashhandler_unix.cpp:802
#3  QTest::CrashHandler::actionHandler (signum=11, info=<optimized out>,
ucontext=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcrashhandler_unix.cpp:802
#4  <signal handler called>
#5  0x00007fddd222f186 in
QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits> (src=@0x7ffe0b7c50c0:
0x1 <error: Cannot access memory at address 0x1>, end=end@entry=0x555a43db4481
"", errorChar=4294967295 U'\xffffffff') at
/home/marc/Qt/qtbase-submit/src/corelib/text/qstringconverter_p.h:298
#6  0x00007fddd2234da0 in QXmlStreamWriterPrivate::NextUtf8::operator()
(this=<synthetic pointer>, it=@0x7ffe0b7c50c0: 0x1 <error: Cannot access memory
at address 0x1>, end=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3285
#7  operator()<QBasicUtf8StringView<false> > (__closure=<optimized out>, s=...)
at /home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3287
#8  QAnyStringView::visit<QXmlStreamWriterPrivate::writeEscaped(QAnyStringView,
bool)::<lambda(auto:65)> > (this=<synthetic pointer>, v=...) at
/home/marc/Qt/qtbase-submit/src/corelib/text/qstring.h:121
#9  QXmlStreamWriterPrivate::writeEscaped (this=0x555a59ee9ef0, s=...,
escapeWhitespace=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3272
#10 0x00007fddd2236494 in QXmlStreamWriter::writeAttribute (this=<optimized
out>, qualifiedName=..., value=...) at
/home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3752
#11 0x0000555a43d984c6 in tst_QXmlStream::writerAutoEmptyTags (this=<optimized
out>) at /home/marc/Qt/qtbase-submit/src/corelib/text/qanystringview.h:182
#12 0x00007fddd20b5ad1 in QMetaMethodInvoker::invokeImpl (self=...,
target=0x7ffe0b7c5c80, connectionType=Qt::DirectConnection,
paramCount=<optimized out>, parameters=0x7ffe0b7c5470,
typeNames=0x7ffe0b7c5478, metaTypes=0x7ffe0b7c5480) at
/home/marc/Qt/qtbase-submit/src/corelib/kernel/qmetaobject.cpp:2867
#13 0x00007fddd20b6647 in QMetaMethod::invokeImpl (self=..., target=<optimized
out>, connectionType=connectionType@entry=Qt::DirectConnection,
paramCount=paramCount@entry=1, parameters=parameters@entry=0x7ffe0b7c5470,
typeNames=0x7ffe0b7c5478, metaTypes=0x7ffe0b7c5480) at
/home/marc/Qt/qtbase-submit/src/corelib/kernel/qmetaobject.cpp:2705
#14 0x00007fddd25fbe1a in QMetaMethod::invoke<void> (this=<synthetic pointer>,
this@entry=<error reading variable: dwarf2_find_location_expression: Corrupted
DWARF expression.>, obj=<optimized out>, obj@entry=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>,
c=Qt::DirectConnection, c@entry=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>, r=...) at
/d/gcc/15/include/c++/15.2.1/array:284
#15 QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const (this=<synthetic
pointer>, this@entry=<error reading variable: dwarf2_find_location_expression:
Corrupted DWARF expression.>, obj=<optimized out>, obj@entry=<error reading
variable: dwarf2_find_location_expression: Corrupted DWARF expression.>,
c=Qt::DirectConnection, c@entry=<error reading variable:
dwarf2_find_location_expression: Corrupted DWARF expression.>) at
/home/marc/Qt/qtbase-submit/src/corelib/kernel/qmetaobject.h:162
#16 QTest::invokeTestMethodIfValid (m=..., obj=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:434
#17 0x00007fddd2604547 in QTest::TestMethods::invokeTestOnData
(this=0x7ffe0b7c5b20, index=<optimized out>) at
/d/gcc/15/include/c++/15.2.1/bits/stl_vector.h:1282
#18 0x00007fddd26054de in operator() (__closure=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1368
#19 QTest::runWithWatchdog<QTest::TestMethods::invokeTest(int,
QLatin1StringView, std::optional<QTest::WatchDog>&) const::<lambda()> >
(watchDog=<error reading variable: dwarf2_find_location_expression: Corrupted
DWARF expression.>, f=...) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1251
#20 QTest::TestMethods::invokeTest (this=<optimized out>, index=<optimized
out>, tag=..., watchDog=...) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1367
#21 0x00007fddd2605f8a in QTest::TestMethods::invokeTests (this=0x7ffe0b7c5b20,
testObject=0x7ffe0b7c5c80) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1706
#22 0x00007fddd2606a25 in QTest::qRun () at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1951
#23 0x00007fddd2606e92 in QTest::qExec (testObject=<optimized out>,
argc=<optimized out>, argv=<optimized out>) at
/home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1823
#24 0x0000555a43d7b4df in main (argc=<optimized out>, argv=0x7ffe0b7c5e38) at
/home/marc/Qt/qtbase-submit/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp:1814
```

Debugging...

Reply via email to