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

            Bug ID: 118749
           Summary: [15 regression] fontconfig miscompiled with -O3
                    -march=pentium4 on x86
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sjames at gcc dot gnu.org
  Target Milestone: ---

```
typedef unsigned char FcChar8;
typedef unsigned short FcChar16;
typedef unsigned int FcChar32;
typedef int FcBool;

#define FcFalse 0
#define FcTrue 1
#define FcDontCare 2

__attribute__((noipa))
static FcBool
FcLooksLikeSJIS (FcChar8 *string, int len)
{
    int     nhigh = 0, nlow = 0;

    while (len-- > 0)
    {
        if (*string++ & 0x80) nhigh++;
        else nlow++;
    }
    /*
     * Heuristic -- if more than 1/3 of the bytes have the high-bit set,
     * this is likely to be SJIS and not ROMAN
     */
    if (nhigh * 2 > nlow)
        return FcTrue;
    return FcFalse;
}

int main() {
        unsigned char* s = "DejaVuMathTeXGyre-Regulardtd!";
        FcLooksLikeSJIS(s, __builtin_strlen(s));
}
```

```
$ gcc fc.c -o fc -O3 -march=pentium4
$ ./fc
Segmentation fault (core dumped)
```

```

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/15/lto-wrapper
Target: i686-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-15.0.9999/work/gcc-15.0.9999/configure
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --prefix=/usr
--bindir=/usr/i686-pc-linux-gnu/gcc-bin/15
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/15/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/15
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/15/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/15/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/15/include/g++-v15
--disable-silent-rules --disable-dependency-tracking
--with-python-dir=/share/gcc-data/i686-pc-linux-gnu/15/python
--enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt
--disable-werror --with-system-zlib --enable-nls --without-included-gettext
--disable-libunwind-exceptions --enable-checking=release
--with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 15.0.9999 p,
commit 601d2479a8464e3bf1fb53065109a027db7c93f1' --with-gcc-major-version-only
--enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--disable-multilib --disable-fixed-point --with-arch=i686 --enable-targets=all
--enable-libgomp --disable-libssp --disable-libada --disable-cet
--disable-systemtap --enable-valgrind-annotations --disable-vtable-verify
--disable-libvtv --with-zstd --without-isl --enable-default-pie
--enable-host-pie --disable-host-bind-now --enable-default-ssp
--disable-fixincludes --with-build-config='bootstrap-O3 bootstrap-lto'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.0.1 20250204 (experimental)
5b46c01c50662a1c730e6658ea4307d4f80da578 (Gentoo 15.0.9999 p, commit
601d2479a8464e3bf1fb53065109a027db7c93f1)
```

Reply via email to