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)
```