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

--- Comment #10 from Marc Mutz <marc.mutz at hotmail dot com> ---
> Also I am trying to understand which version has the bug? The one without the 
> patch (and with `__attribute__((optimize("O0"))` removed) or the one with the 
> patch (and with `__attribute__((optimize("O0"))` removed)?

- inline (the .7z) works fine
- guarded (.7z + inline-to-guarded.diff applied) works fine, too
- guarded - __attribute__((optimize("O0"))) hangs (with 100% CPU)

> Does changing `optimize("O0")` to noipa help fix the issue?

Yes, that fixes the issue (at least on 15.2.1, didn't check the others).

> Also which function is the hang in? Is it in 
> QXmlStreamWriterPrivate::writeEscaped or something else?

It's writeEscaped, yes.

> noinline

Bingo, that creates a Valgrind report:

```
==1794237== Use of uninitialised value of size 8
==1794237==    at 0x4E27206: char32_t
QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits>(qchar8_t const*&,
qchar8_t const*, char32_t) [clone .constprop.0] (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4E2CE6F:
QXmlStreamWriterPrivate::writeEscaped(QAnyStringView, bool) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4E2E563: QXmlStreamWriter::writeAttribute(QAnyStringView,
QAnyStringView) (in /home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x1344B5: tst_QXmlStream::writerAutoEmptyTags() const (in
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream)
==1794237==    by 0x4CAF150: QMetaMethodInvoker::invokeImpl(QMetaMethod, void*,
Qt::ConnectionType, long long, void const* const*, char const* const*,
QtPrivate::QMetaTypeInterface const* const*) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4CAFCC6: QMetaMethod::invokeImpl(QMetaMethod, void*,
Qt::ConnectionType, long long, void const* const*, char const* const*,
QtPrivate::QMetaTypeInterface const* const*) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4A9AFD9: QTest::invokeTestMethodIfValid(QMetaMethod,
QObject*) (in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA3686: QTest::TestMethods::invokeTestOnData(int) const
(in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA464D: QTest::TestMethods::invokeTest(int, QLatin1String,
std::optional<QTest::WatchDog>&) const (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA50F9: QTest::TestMethods::invokeTests(QObject*) const
(in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA5CB7: QTest::qRun() (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA5EF1: QTest::qExec(QObject*, int, char**) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237== 
==1794237== Invalid read of size 1
==1794237==    at 0x4E27206: char32_t
QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits>(qchar8_t const*&,
qchar8_t const*, char32_t) [clone .constprop.0] (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4E2CE6F:
QXmlStreamWriterPrivate::writeEscaped(QAnyStringView, bool) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4E2E563: QXmlStreamWriter::writeAttribute(QAnyStringView,
QAnyStringView) (in /home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x1344B5: tst_QXmlStream::writerAutoEmptyTags() const (in
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream)
==1794237==    by 0x4CAF150: QMetaMethodInvoker::invokeImpl(QMetaMethod, void*,
Qt::ConnectionType, long long, void const* const*, char const* const*,
QtPrivate::QMetaTypeInterface const* const*) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4CAFCC6: QMetaMethod::invokeImpl(QMetaMethod, void*,
Qt::ConnectionType, long long, void const* const*, char const* const*,
QtPrivate::QMetaTypeInterface const* const*) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4A9AFD9: QTest::invokeTestMethodIfValid(QMetaMethod,
QObject*) (in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA3686: QTest::TestMethods::invokeTestOnData(int) const
(in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA464D: QTest::TestMethods::invokeTest(int, QLatin1String,
std::optional<QTest::WatchDog>&) const (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA50F9: QTest::TestMethods::invokeTests(QObject*) const
(in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA5CB7: QTest::qRun() (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA5EF1: QTest::qExec(QObject*, int, char**) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==  Address 0x1 is not stack'd, malloc'd or (recently) free'd
==1794237== 
Received signal 11 (SIGSEGV), code SEGV_MAPERR, at instruction address
0x0000000004e27206, accessing address 0x0000000000000001
         writerAutoEmptyTags function time: 16ms, total time: 1871ms

=== Stack trace ===
[New LWP 1794255]
0x00000000580f5eb7 in ?? ()
   0x4e27206:   movzbl (%rcx),%edx

Thread 2 (LWP 1794255):
#0  0x00000000580f5eb7 in ?? ()
#1  0x00000000580a8a70 in ?? ()
#2  0x00000000580a4d6b in ?? ()
#3  0x00000000580a65aa in ?? ()
#4  0x00000000580f5fd5 in ?? ()
#5  0x00000000580f62d1 in ?? ()
#6  0x00000000580b88ee in ?? ()
#7  0xdeadbeefdeadbeef in ?? ()
#8  0xdeadbeefdeadbeef in ?? ()
#9  0xdeadbeefdeadbeef in ?? ()
#10 0xdeadbeefdeadbeef in ?? ()
#11 0x0000000000000000 in ?? ()

Thread 1 (LWP 1794237):
#0  0x00000000580f5eb7 in ?? ()
#1  0x00000000580a8a70 in ?? ()
#2  0x00000000580a4d6b in ?? ()
#3  0x00000000580a65aa in ?? ()
#4  0x00000000580f5fd5 in ?? ()
#5  0x0000000000000000 in ?? ()

process 1794237
Mapped address spaces:

          Start Addr           End Addr       Size     Offset objfile
            0x108000           0x111000     0x9000        0x0
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream
            0x111000           0x149000    0x38000     0x9000
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream
            0x149000           0x158000     0xf000    0x41000
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream
            0x158000           0x15a000     0x2000    0x4f000
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream
            0x15a000           0x15b000     0x1000    0x51000
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream
           0x4000000          0x4001000     0x1000        0x0
/lib/x86_64-linux-gnu/ld-2.31.so
           0x4001000          0x4024000    0x23000     0x1000
/lib/x86_64-linux-gnu/ld-2.31.so
           0x4024000          0x402c000     0x8000    0x24000
/lib/x86_64-linux-gnu/ld-2.31.so
           0x402d000          0x402e000     0x1000    0x2c000
/lib/x86_64-linux-gnu/ld-2.31.so
           0x402e000          0x402f000     0x1000    0x2d000
/lib/x86_64-linux-gnu/ld-2.31.so
           0x402f000          0x4030000     0x1000        0x0 
           0x4030000          0x4031000     0x1000        0x0 
           0x4830000          0x4832000     0x2000        0x0 
           0x4832000          0x4833000     0x1000        0x0
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_core-amd64-linux.so
           0x4833000          0x4834000     0x1000     0x1000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_core-amd64-linux.so
           0x4834000          0x4835000     0x1000     0x2000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_core-amd64-linux.so
           0x4835000          0x4836000     0x1000     0x2000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_core-amd64-linux.so
           0x4836000          0x4837000     0x1000     0x3000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_core-amd64-linux.so
           0x4837000          0x483b000     0x4000        0x0
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so
           0x483b000          0x4845000     0xa000     0x4000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so
           0x4845000          0x4848000     0x3000     0xe000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so
           0x4848000          0x4849000     0x1000    0x10000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so
           0x4849000          0x484a000     0x1000    0x11000
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so
           0x484a000          0x48b1000    0x67000        0x0
/home/marc/Qt/qtbase-submit-build/lib/libQt6Network.so.6.11.0
           0x48b1000          0x49f4000   0x143000    0x67000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Network.so.6.11.0
           0x49f4000          0x4a59000    0x65000   0x1aa000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Network.so.6.11.0
           0x4a59000          0x4a5a000     0x1000   0x20f000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Network.so.6.11.0
           0x4a5a000          0x4a64000     0xa000   0x20f000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Network.so.6.11.0
           0x4a64000          0x4a69000     0x5000   0x219000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Network.so.6.11.0
           0x4a69000          0x4a6b000     0x2000        0x0 
           0x4a6b000          0x4a7e000    0x13000        0x0
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0
           0x4a7e000          0x4aca000    0x4c000    0x13000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0
           0x4aca000          0x4ae1000    0x17000    0x5f000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0
           0x4ae1000          0x4ae2000     0x1000    0x76000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0
           0x4ae2000          0x4ae4000     0x2000    0x76000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0
           0x4ae4000          0x4ae5000     0x1000    0x78000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0
           0x4ae5000          0x4bb6000    0xd1000        0x0
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0
           0x4bb6000          0x4ff0000   0x43a000    0xd1000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0
           0x4ff0000          0x51aa000   0x1ba000   0x50b000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0
           0x51aa000          0x51ba000    0x10000   0x6c4000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0
           0x51ba000          0x51c3000     0x9000   0x6d4000
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0
           0x51c3000          0x51c7000     0x4000        0x0 
           0x51c7000          0x51c8000     0x1000        0x0 
           0x51c8000          0x51d0000     0x8000        0x0 
           0x51f5000          0x51fb000     0x6000        0x0
/lib/x86_64-linux-gnu/libpthread-2.31.so
           0x51fb000          0x520c000    0x11000     0x6000
/lib/x86_64-linux-gnu/libpthread-2.31.so
           0x520c000          0x5212000     0x6000    0x17000
/lib/x86_64-linux-gnu/libpthread-2.31.so
           0x5212000          0x5213000     0x1000    0x1c000
/lib/x86_64-linux-gnu/libpthread-2.31.so
           0x5213000          0x5214000     0x1000    0x1d000
/lib/x86_64-linux-gnu/libpthread-2.31.so
           0x5214000          0x521a000     0x6000        0x0 
           0x521a000          0x52c4000    0xaa000        0x0
/d/gcc/15/lib64/libstdc++.so.6.0.34
           0x52c4000          0x53f9000   0x135000    0xaa000
/d/gcc/15/lib64/libstdc++.so.6.0.34
           0x53f9000          0x5487000    0x8e000   0x1df000
/d/gcc/15/lib64/libstdc++.so.6.0.34
           0x5487000          0x5488000     0x1000   0x26d000
/d/gcc/15/lib64/libstdc++.so.6.0.34
           0x5488000          0x5497000     0xf000   0x26d000
/d/gcc/15/lib64/libstdc++.so.6.0.34
           0x5497000          0x549a000     0x3000   0x27c000
/d/gcc/15/lib64/libstdc++.so.6.0.34
           0x549a000          0x549e000     0x4000        0x0 
           0x549e000          0x54ab000     0xd000        0x0
/lib/x86_64-linux-gnu/libm-2.31.so
           0x54ab000          0x5552000    0xa7000     0xd000
/lib/x86_64-linux-gnu/libm-2.31.so
           0x5552000          0x55eb000    0x99000    0xb4000
/lib/x86_64-linux-gnu/libm-2.31.so
           0x55eb000          0x55ec000     0x1000   0x14c000
/lib/x86_64-linux-gnu/libm-2.31.so
           0x55ec000          0x55ed000     0x1000   0x14d000
/lib/x86_64-linux-gnu/libm-2.31.so
           0x55ed000          0x55f1000     0x4000        0x0
/d/gcc/15/lib64/libgcc_s.so.1
           0x55f1000          0x5614000    0x23000     0x4000
/d/gcc/15/lib64/libgcc_s.so.1
           0x5614000          0x5618000     0x4000    0x27000
/d/gcc/15/lib64/libgcc_s.so.1
           0x5618000          0x5619000     0x1000    0x2b000
/d/gcc/15/lib64/libgcc_s.so.1
           0x5619000          0x561a000     0x1000    0x2b000
/d/gcc/15/lib64/libgcc_s.so.1
           0x561a000          0x561b000     0x1000    0x2c000
/d/gcc/15/lib64/libgcc_s.so.1
           0x561b000          0x563d000    0x22000        0x0
/lib/x86_64-linux-gnu/libc-2.31.so
           0x563d000          0x57b5000   0x178000    0x22000
/lib/x86_64-linux-gnu/libc-2.31.so
           0x57b5000          0x5803000    0x4e000   0x19a000
/lib/x86_64-linux-gnu/libc-2.31.so
           0x5803000          0x5807000     0x4000   0x1e7000
/lib/x86_64-linux-gnu/libc-2.31.so
           0x5807000          0x5809000     0x2000   0x1eb000
/lib/x86_64-linux-gnu/libc-2.31.so
           0x5809000          0x580d000     0x4000        0x0 
           0x580d000          0x5811000     0x4000        0x0
/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
           0x5811000          0x58a3000    0x92000     0x4000
/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
           0x58a3000          0x58b4000    0x11000    0x96000
/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
           0x58b4000          0x58b5000     0x1000    0xa6000
/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
           0x58b5000          0x58b6000     0x1000    0xa7000
/usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
           0x58b6000          0x58c1000     0xb000        0x0
/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
           0x58c1000          0x58f3000    0x32000     0xb000
/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
           0x58f3000          0x58ff000     0xc000    0x3d000
/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
           0x58ff000          0x5901000     0x2000    0x48000
/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
           0x5901000          0x5903000     0x2000    0x4a000
/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
           0x5903000          0x5905000     0x2000        0x0 
           0x5905000          0x5907000     0x2000        0x0
/lib/x86_64-linux-gnu/libz.so.1.2.11
           0x5907000          0x5918000    0x11000     0x2000
/lib/x86_64-linux-gnu/libz.so.1.2.11
           0x5918000          0x591e000     0x6000    0x13000
/lib/x86_64-linux-gnu/libz.so.1.2.11
           0x591e000          0x591f000     0x1000    0x19000
/lib/x86_64-linux-gnu/libz.so.1.2.11
           0x591f000          0x5920000     0x1000    0x19000
/lib/x86_64-linux-gnu/libz.so.1.2.11
           0x5920000          0x5921000     0x1000    0x1a000
/lib/x86_64-linux-gnu/libz.so.1.2.11
           0x5921000          0x5925000     0x4000        0x0
/lib/x86_64-linux-gnu/libresolv-2.31.so
           0x5925000          0x5935000    0x10000     0x4000
/lib/x86_64-linux-gnu/libresolv-2.31.so
           0x5935000          0x5939000     0x4000    0x14000
/lib/x86_64-linux-gnu/libresolv-2.31.so
           0x5939000          0x593a000     0x1000    0x17000
/lib/x86_64-linux-gnu/libresolv-2.31.so
           0x593a000          0x593b000     0x1000    0x18000
/lib/x86_64-linux-gnu/libresolv-2.31.so
           0x593b000          0x593d000     0x2000        0x0 
           0x593d000          0x595d000    0x20000        0x0
/d/openssl/32-dev/lib64/libssl.so.3
           0x595d000          0x59ea000    0x8d000    0x20000
/d/openssl/32-dev/lib64/libssl.so.3
           0x59ea000          0x5a10000    0x26000    0xad000
/d/openssl/32-dev/lib64/libssl.so.3
           0x5a10000          0x5a11000     0x1000    0xd3000
/d/openssl/32-dev/lib64/libssl.so.3
           0x5a11000          0x5a1a000     0x9000    0xd3000
/d/openssl/32-dev/lib64/libssl.so.3
           0x5a1a000          0x5a1f000     0x5000    0xdc000
/d/openssl/32-dev/lib64/libssl.so.3
           0x5a1f000          0x5ad6000    0xb7000        0x0
/d/openssl/32-dev/lib64/libcrypto.so.3
           0x5ad6000          0x5eb1000   0x3db000    0xb7000
/d/openssl/32-dev/lib64/libcrypto.so.3
           0x5eb1000          0x5f9c000    0xeb000   0x492000
/d/openssl/32-dev/lib64/libcrypto.so.3
           0x5f9c000          0x5ff9000    0x5d000   0x57c000
/d/openssl/32-dev/lib64/libcrypto.so.3
           0x5ff9000          0x5ffe000     0x5000   0x5d9000
/d/openssl/32-dev/lib64/libcrypto.so.3
           0x5ffe000          0x6001000     0x3000        0x0 
           0x6001000          0x60ea000    0xe9000        0x0
/usr/lib/x86_64-linux-gnu/libicui18n.so.66.1
           0x60ea000          0x6267000   0x17d000    0xe9000
/usr/lib/x86_64-linux-gnu/libicui18n.so.66.1
           0x6267000          0x62ed000    0x86000   0x266000
/usr/lib/x86_64-linux-gnu/libicui18n.so.66.1
           0x62ed000          0x62ee000     0x1000   0x2ec000
/usr/lib/x86_64-linux-gnu/libicui18n.so.66.1
           0x62ee000          0x62fe000    0x10000   0x2ec000
/usr/lib/x86_64-linux-gnu/libicui18n.so.66.1
           0x62fe000          0x62ff000     0x1000   0x2fc000
/usr/lib/x86_64-linux-gnu/libicui18n.so.66.1
           0x62ff000          0x6302000     0x3000        0x0 
           0x6302000          0x6367000    0x65000        0x0
/usr/lib/x86_64-linux-gnu/libicuuc.so.66.1
           0x6367000          0x644c000    0xe5000    0x65000
/usr/lib/x86_64-linux-gnu/libicuuc.so.66.1
           0x644c000          0x64d2000    0x86000   0x14a000
/usr/lib/x86_64-linux-gnu/libicuuc.so.66.1
           0x64d2000          0x64d3000     0x1000   0x1d0000
/usr/lib/x86_64-linux-gnu/libicuuc.so.66.1
           0x64d3000          0x64e5000    0x12000   0x1d0000
/usr/lib/x86_64-linux-gnu/libicuuc.so.66.1
           0x64e5000          0x64e6000     0x1000   0x1e2000
/usr/lib/x86_64-linux-gnu/libicuuc.so.66.1
           0x64e6000          0x64e8000     0x2000        0x0 
           0x64e8000          0x64e9000     0x1000        0x0
/usr/lib/x86_64-linux-gnu/libicudata.so.66.1
           0x64e9000          0x64ea000     0x1000     0x1000
/usr/lib/x86_64-linux-gnu/libicudata.so.66.1
           0x64ea000          0x7fa7000  0x1abd000     0x2000
/usr/lib/x86_64-linux-gnu/libicudata.so.66.1
           0x7fa7000          0x7fa8000     0x1000  0x1abe000
/usr/lib/x86_64-linux-gnu/libicudata.so.66.1
           0x7fa8000          0x7fa9000     0x1000  0x1abf000
/usr/lib/x86_64-linux-gnu/libicudata.so.66.1
           0x7fa9000          0x7faa000     0x1000        0x0
/lib/x86_64-linux-gnu/libdl-2.31.so
           0x7faa000          0x7fac000     0x2000     0x1000
/lib/x86_64-linux-gnu/libdl-2.31.so
           0x7fac000          0x7fad000     0x1000     0x3000
/lib/x86_64-linux-gnu/libdl-2.31.so
           0x7fad000          0x7fae000     0x1000     0x3000
/lib/x86_64-linux-gnu/libdl-2.31.so
           0x7fae000          0x7faf000     0x1000     0x4000
/lib/x86_64-linux-gnu/libdl-2.31.so
           0x7faf000          0x7fcb000    0x1c000        0x0
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6
           0x7fcb000          0x8050000    0x85000    0x1c000
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6
           0x8050000          0x80d6000    0x86000    0xa1000
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6
           0x80d6000          0x80d7000     0x1000   0x126000
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6
           0x80d7000          0x80d8000     0x1000   0x127000
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6
           0x80d8000          0x80d9000     0x1000        0x0 
           0x80d9000          0x80db000     0x2000        0x0
/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
           0x80db000          0x80e7000     0xc000     0x2000
/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
           0x80e7000          0x80ec000     0x5000     0xe000
/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
           0x80ec000          0x80ed000     0x1000    0x13000
/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
           0x80ed000          0x80ee000     0x1000    0x13000
/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
           0x80ee000          0x80ef000     0x1000    0x14000
/usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3.1
           0x80ef000          0x80f2000     0x3000        0x0
/usr/lib/x86_64-linux-gnu/libb2.so.1.0.4
           0x80f2000          0x8108000    0x16000     0x3000
/usr/lib/x86_64-linux-gnu/libb2.so.1.0.4
           0x8108000          0x810b000     0x3000    0x19000
/usr/lib/x86_64-linux-gnu/libb2.so.1.0.4
           0x810b000          0x810c000     0x1000    0x1b000
/usr/lib/x86_64-linux-gnu/libb2.so.1.0.4
           0x810c000          0x810d000     0x1000    0x1c000
/usr/lib/x86_64-linux-gnu/libb2.so.1.0.4
           0x810d000          0x810f000     0x2000        0x0
/usr/lib/x86_64-linux-gnu/libpcre2-16.so.0.9.0
           0x810f000          0x8167000    0x58000     0x2000
/usr/lib/x86_64-linux-gnu/libpcre2-16.so.0.9.0
           0x8167000          0x818e000    0x27000    0x5a000
/usr/lib/x86_64-linux-gnu/libpcre2-16.so.0.9.0
           0x818e000          0x818f000     0x1000    0x81000
/usr/lib/x86_64-linux-gnu/libpcre2-16.so.0.9.0
           0x818f000          0x8190000     0x1000    0x81000
/usr/lib/x86_64-linux-gnu/libpcre2-16.so.0.9.0
           0x8190000          0x8191000     0x1000    0x82000
/usr/lib/x86_64-linux-gnu/libpcre2-16.so.0.9.0
           0x8191000          0x8193000     0x2000        0x0 
           0x8193000          0x8194000     0x1000        0x0
/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.6400.6
           0x8194000          0x8195000     0x1000     0x1000
/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.6400.6
           0x8195000          0x8196000     0x1000     0x2000
/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.6400.6
           0x8196000          0x8197000     0x1000     0x2000
/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.6400.6
           0x8197000          0x8198000     0x1000     0x3000
/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.6400.6
           0x8198000          0x819a000     0x2000        0x0
/lib/x86_64-linux-gnu/librt-2.31.so
           0x819a000          0x819e000     0x4000     0x2000
/lib/x86_64-linux-gnu/librt-2.31.so
           0x819e000          0x81a0000     0x2000     0x6000
/lib/x86_64-linux-gnu/librt-2.31.so
           0x81a0000          0x81a1000     0x1000     0x7000
/lib/x86_64-linux-gnu/librt-2.31.so
           0x81a1000          0x81a2000     0x1000     0x8000
/lib/x86_64-linux-gnu/librt-2.31.so
           0x81a2000          0x81c4000    0x22000        0x0
/usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
           0x81c4000          0x8225000    0x61000    0x22000
/usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
           0x8225000          0x826e000    0x49000    0x83000
/usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
           0x826e000          0x826f000     0x1000    0xcc000
/usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
           0x826f000          0x827d000     0xe000    0xcc000
/usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
           0x827d000          0x827f000     0x2000    0xda000
/usr/lib/x86_64-linux-gnu/libkrb5.so.3.3
           0x827f000          0x8283000     0x4000        0x0
/usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
           0x8283000          0x829f000    0x1c000     0x4000
/usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
           0x829f000          0x82ac000     0xd000    0x20000
/usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
           0x82ac000          0x82ad000     0x1000    0x2d000
/usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
           0x82ad000          0x82ae000     0x1000    0x2d000
/usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
           0x82ae000          0x82af000     0x1000    0x2e000
/usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1
           0x82af000          0x82b0000     0x1000        0x0 
           0x82b0000          0x82b2000     0x2000        0x0
/lib/x86_64-linux-gnu/libcom_err.so.2.1
           0x82b2000          0x82b4000     0x2000     0x2000
/lib/x86_64-linux-gnu/libcom_err.so.2.1
           0x82b4000          0x82b5000     0x1000     0x4000
/lib/x86_64-linux-gnu/libcom_err.so.2.1
           0x82b5000          0x82b6000     0x1000     0x4000
/lib/x86_64-linux-gnu/libcom_err.so.2.1
           0x82b6000          0x82b7000     0x1000     0x5000
/lib/x86_64-linux-gnu/libcom_err.so.2.1
           0x82b7000          0x82b9000     0x2000        0x0 
           0x82b9000          0x82bc000     0x3000        0x0
/usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1
           0x82bc000          0x82c3000     0x7000     0x3000
/usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1
           0x82c3000          0x82c6000     0x3000     0xa000
/usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1
           0x82c6000          0x82c7000     0x1000     0xc000
/usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1
           0x82c7000          0x82c8000     0x1000     0xd000
/usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1
           0x82c8000          0x82ca000     0x2000        0x0
/lib/x86_64-linux-gnu/libpcre.so.3.13.3
           0x82ca000          0x831b000    0x51000     0x2000
/lib/x86_64-linux-gnu/libpcre.so.3.13.3
           0x831b000          0x8339000    0x1e000    0x53000
/lib/x86_64-linux-gnu/libpcre.so.3.13.3
           0x8339000          0x833a000     0x1000    0x70000
/lib/x86_64-linux-gnu/libpcre.so.3.13.3
           0x833a000          0x833b000     0x1000    0x71000
/lib/x86_64-linux-gnu/libpcre.so.3.13.3
           0x833b000          0x8348000     0xd000        0x0
/d/gcc/15/lib64/libgomp.so.1.0.0
           0x8348000          0x8381000    0x39000     0xd000
/d/gcc/15/lib64/libgomp.so.1.0.0
           0x8381000          0x838f000     0xe000    0x46000
/d/gcc/15/lib64/libgomp.so.1.0.0
           0x838f000          0x8390000     0x1000    0x54000
/d/gcc/15/lib64/libgomp.so.1.0.0
           0x8390000          0x8391000     0x1000    0x54000
/d/gcc/15/lib64/libgomp.so.1.0.0
           0x8391000          0x8392000     0x1000    0x55000
/d/gcc/15/lib64/libgomp.so.1.0.0
           0x8392000          0x8394000     0x2000        0x0
/lib/x86_64-linux-gnu/libkeyutils.so.1.8
           0x8394000          0x8396000     0x2000     0x2000
/lib/x86_64-linux-gnu/libkeyutils.so.1.8
           0x8396000          0x8397000     0x1000     0x4000
/lib/x86_64-linux-gnu/libkeyutils.so.1.8
           0x8397000          0x8398000     0x1000     0x4000
/lib/x86_64-linux-gnu/libkeyutils.so.1.8
           0x8398000          0x8399000     0x1000     0x5000
/lib/x86_64-linux-gnu/libkeyutils.so.1.8
           0x8399000          0x83a8000     0xf000        0x0 
           0x83a8000          0x87a8000   0x400000        0x0 
           0x87a8000          0x8d6c000   0x5c4000        0x0
/usr/lib/locale/locale-archive
           0x8d6c000          0x8d6d000     0x1000        0x0 
           0x8d6d000          0x956d000   0x800000        0x0 
           0x956d000          0xb56d000  0x2000000        0x0 
          0x58000000         0x58001000     0x1000        0x0
/usr/lib/x86_64-linux-gnu/valgrind/memcheck-amd64-linux
          0x58001000         0x581f6000   0x1f5000     0x1000
/usr/lib/x86_64-linux-gnu/valgrind/memcheck-amd64-linux
          0x581f6000         0x58294000    0x9e000   0x1f6000
/usr/lib/x86_64-linux-gnu/valgrind/memcheck-amd64-linux
          0x58294000         0x5829a000     0x6000   0x293000
/usr/lib/x86_64-linux-gnu/valgrind/memcheck-amd64-linux
          0x5829a000         0x59c9d000  0x1a03000        0x0 
        0x1002001000       0x1002bb4000   0xbb3000        0x0 
        0x1002bb4000       0x1002bb6000     0x2000        0x0 
        0x1002bb6000       0x1002cb6000   0x100000        0x0 
        0x1002cb6000       0x1002cb8000     0x2000        0x0 
        0x1002cb8000       0x1002cb9000     0x1000        0x0
/tmp/vgdb-pipe-shared-mem-vgdb-1794237-by-marc-on-???
        0x1002cb9000       0x1004ff5000  0x233c000        0x0 
        0x1004ff7000       0x1005023000    0x2c000        0x0 
        0x1005025000       0x1005fd9000   0xfb4000        0x0 
        0x1005fd9000       0x1005fdb000     0x2000        0x0 
        0x1005fdb000       0x10060db000   0x100000        0x0 
        0x10060db000       0x10060dd000     0x2000        0x0 
        0x100610d000       0x1006355000   0x248000        0x0 
        0x1006357000       0x100673e000   0x3e7000        0x0 
        0x1006740000       0x10069e8000   0x2a8000        0x0 
        0x10069ea000       0x1006afa000   0x110000        0x0 
        0x1006afe000       0x1006cde000   0x1e0000        0x0 
        0x1006cdf000       0x1007c47000   0xf68000        0x0 
        0x1ffeffd000       0x1fff001000     0x4000        0x0 
      0x7fff82bb3000     0x7fff82bd4000    0x21000        0x0 [stack]
      0x7fff82be6000     0x7fff82be9000     0x3000        0x0 [vvar]
  0xffffffffff600000 0xffffffffff601000     0x1000        0x0 [vsyscall]
[Inferior 1 (process 1794237) detached]
=== End of stack trace ===
==1794237== 
==1794237== Process terminating with default action of signal 11 (SIGSEGV)
==1794237==  Access not within mapped region at address 0x1
==1794237==    at 0x4E27206: char32_t
QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits>(qchar8_t const*&,
qchar8_t const*, char32_t) [clone .constprop.0] (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4E2CE6F:
QXmlStreamWriterPrivate::writeEscaped(QAnyStringView, bool) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4E2E563: QXmlStreamWriter::writeAttribute(QAnyStringView,
QAnyStringView) (in /home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x1344B5: tst_QXmlStream::writerAutoEmptyTags() const (in
/home/marc/Qt/qtbase-submit-build/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream)
==1794237==    by 0x4CAF150: QMetaMethodInvoker::invokeImpl(QMetaMethod, void*,
Qt::ConnectionType, long long, void const* const*, char const* const*,
QtPrivate::QMetaTypeInterface const* const*) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4CAFCC6: QMetaMethod::invokeImpl(QMetaMethod, void*,
Qt::ConnectionType, long long, void const* const*, char const* const*,
QtPrivate::QMetaTypeInterface const* const*) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Core.so.6.11.0)
==1794237==    by 0x4A9AFD9: QTest::invokeTestMethodIfValid(QMetaMethod,
QObject*) (in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA3686: QTest::TestMethods::invokeTestOnData(int) const
(in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA464D: QTest::TestMethods::invokeTest(int, QLatin1String,
std::optional<QTest::WatchDog>&) const (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA50F9: QTest::TestMethods::invokeTests(QObject*) const
(in /home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA5CB7: QTest::qRun() (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==    by 0x4AA5EF1: QTest::qExec(QObject*, int, char**) (in
/home/marc/Qt/qtbase-submit-build/lib/libQt6Test.so.6.11.0)
==1794237==  If you believe this happened as a result of a stack
==1794237==  overflow in your program's main thread (unlikely but
==1794237==  possible), you can try to increase the size of the
==1794237==  main thread stack using the --main-stacksize= flag.
==1794237==  The main thread stack size used in this run was 8388608.
```

Lemme throw ubsan/asan on the noinline code.

Reply via email to