https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100152
Bug ID: 100152
Summary: Possible 10.3 bad code generation regression from
10.2/9.3 on Mac OS 10.15.7 (Catalina)
Product: gcc
Version: 10.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: lucier at math dot purdue.edu
Target Milestone: ---
With this compiler:
[Bradleys-Mac-mini:~] lucier% /usr/local/gcc-10.3.0/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/usr/local/gcc-10.3.0/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-10.3.0/libexec/gcc/x86_64-apple-darwin19.6.0/10.3.0/lto-wrapper
Target: x86_64-apple-darwin19.6.0
Configured with: ../../gcc-10.3.0/configure --prefix=/usr/local/gcc-10.3.0
--enable-languages=c --disable-multilib --enable-checking=release
--with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.3.0 (GCC)
and these compiler options:
/usr/local/gcc-10.3.0/bin/gcc -save-temps -g -O3 -Wno-unused -Wno-write-strings
-Wdisabled-optimization -fwrapv -fno-strict-aliasing -fno-trapping-math
-fno-math-errno -fschedule-insns2 -fomit-frame-pointer -fPIC -fno-common -mpc64
-I"../include" -c -o c_intf.o -I. -DHAVE_CONFIG_H
-D___GAMBITDIR="\"/usr/local/Gambit\""
-D___GAMBITDIR_USERLIB="\"~/.gambit_userlib\""
-D___GAMBITDIR_INSTLIB="\"~~userlib\"" -D___SYS_TYPE_CPU="\"x86_64\""
-D___SYS_TYPE_VENDOR="\"apple\"" -D___SYS_TYPE_OS="\"darwin19.6.0\""
-D___CONFIGURE_COMMAND="\"./configure 'CC=/usr/local/gcc-10.3.0/bin/gcc
-save-temps -g' '--enable-single-host' '--enable-shared'"\"
-D___OBJ_EXTENSION="\".o\"" -D___EXE_EXTENSION="\"\"" -D___BAT_EXTENSION="\"\""
-D___PRIMAL c_intf.c -D___LIBRARY
on Mac OS 10.5.7 (Catalina), I get a runtime failure, with console message:
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x000000000000000c, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [98080]
Application Specific Information:
dyld2 mode
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libgambit.dylib 0x000000010dfaf010
___SCMOBJ_to_NONNULLSTRING + 1520 (c_intf.c:3280)
The disassembly (with arrow pointing to the noted instruction) is:
(lldb) di -s 0x0000000103d60000 -c 10
libgambit.dylib`___SCMOBJ_to_NONNULLSTRING:
0x103d60000 <+1504>: jl 0x103d60026 ; <+1542> at
c_intf.c:3282:9
0x103d60002 <+1506>: orb %al, 0x31(%rbp)
0x103d60005 <+1509>: shlb %cl, 0x2e(%rsi)
0x103d60008 <+1512>: nopl (%rax,%rax)
-> 0x103d60010 <+1520>: movl (%rbp,%r10,4), %esi
0x103d60015 <+1525>: callq 0x103fba9a0 ; symbol stub for:
___UTF_8_put
0x103d6001a <+1530>: movq %r10, %rax
0x103d6001d <+1533>: addq $0x1, %r10
0x103d60021 <+1537>: cmpq %r12, %rax
0x103d60024 <+1540>: jne 0x103d60010 ; <+1520> at
c_intf.c:3280:173
I'll add the .i and .s files. I apologize for their length, I don't know how
much I can cut out and still keep them relevant.