Bug 2213 – unrecognizable insn are generated when cross-compiling
Status
RESOLVED
Resolution
WONTFIX
Severity
major
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Windows
Creation time
2008-07-10T05:28:00Z
Last change time
2015-06-09T01:31:19Z
Keywords
wrong-code
Assigned to
ibuclaw
Creator
forumer
Comments
Comment #0 by forumer — 2008-07-10T05:28:29Z
Hi,
When applying latest trunk to cegcc with mingw32ce configuration project I get some issues but I think that more generally this report could help people to cross-compile D on different architectures.
Main issues are related to unrecognizable instruction due to some windows functions.
Another issue is about x86 assembly used in some modules.
1) in libphobos/std/c/windows/com.d
It seems that Windows InterlockedIncrement function generates bad instruction
make[3]: Entering directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include -o std/c/windows/com.o -g -frelease -O2 -nostdinc -pipe \
-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d: In member function 'AddRef':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224: error: unrecognizable insn:
(call_insn/j 13 12 14 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:223 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (reg/f:SI 105) [0 S4 A32])
(const_int 0 [0x0])))
(return)
(use (const_int 0 [0x0]))
]) -1 (nil)
(nil)
(expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
(nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [std/c/windows/com.o] Error 1
make[3]: Leaving directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
make[1]: *** [all-target-libphobos] Error 2
make[1]: Leaving directory `/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc'
make: *** [all] Error 2
------------------------------------------------------------------------------
2)Same kind of error in libphobos/std/mmfile.d due to FlushViewOfFile function
/* Flush any pending output. */
void flush()
{
debug (MMFILE) printf("MmFile.flush()\n");
version (Win32)
{
FlushViewOfFile(data.ptr, data.length);<< BAD INSN
}
...
}
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include -o std/mmfile.o -g -frelease -O2 -nostdinc -pipe \
-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d: In member function 'flush':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414: error: unrecognizable insn:
(call_insn/j 15 14 16 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:397 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (reg/f:SI 104) [0 S4 A32])
(const_int 0 [0x0])))
(return)
(use (const_int 0 [0x0]))
]) -1 (nil)
(nil)
(expr_list:REG_DEP_TRUE (use (reg:SI 1 r1))
(expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
(nil))))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------
3) Same kind of error in libphobos/std/perf.d:202:
static void _qpc(out epoch_type interval)
{
QueryPerformanceCounter(&interval);
}
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include -o std/perf.o -g -frelease -O2 -nostdinc -pipe \
-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d: In function '_qpc':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: error: unrecognizable insn:
(call_insn/j 14 13 15 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:202 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (reg/f:SI 102) [0 S4 A32])
(const_int 0 [0x0])))
(return)
(use (const_int 0 [0x0]))
]) -1 (nil)
(nil)
(expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
(nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report
------------------------------------------------------------------------------
4) Missing variable declaration in libphobos/gcc/deh.d:327
private _Unwind_Reason_Code personalityImpl(int iversion,
_Unwind_Action actions,
bool foreign_exception,
_Unwind_Exception *ue_header,
_Unwind_Context *context)
{
enum Found
{
nothing,
terminate,
cleanup,
handler
}
Found found_type;
lsda_header_info info;
OurUnwindException * xh = OurUnwindException.fromHeader(ue_header);
//ubyte *language_specific_data;
ubyte *p;
ubyte *action_record;
//int handler_switch_value;
_Unwind_Ptr /*landing_pad, */ip;
Phase1Info phase1;
As you can see landing_pad and ip are commented ...
------------------------------------------------------------------------------
5) function defined in a plateform dependent manner(x86)
In thread.d void *os_query_stackBottom() is defined as x86 ASM so it cannot work other architecture...
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include -o std/thread.o -g -frelease -O2 -nostdinc -pipe \
-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:522: function std.thread.os_query_stackBottom expected to return a value of type void*
make[3]: *** [std/thread.o] Error 1
void *os_query_stackBottom()
{
asm
{
naked ;
mov EAX,FS:4 ;
ret ;
}
}
------------------------------------------------------------------------------
6)BAD instruction in libphobos/std/thread.d:399 :
static void yield()
{
Sleep(0);
}
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2 " "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info" "libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include" "prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce" "gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar" "AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as" "LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld" "RANLIB=arm-mingw32ce-ranlib" "NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc -B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/ -B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/ -isystem /opt/mingw32ce/arm-mingw32ce/include -isystem /opt/mingw32ce/arm-mingw32ce/sys-include -o std/thread.o -g -frelease -O2 -nostdinc -pipe \
-I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce -c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In function 'yield':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400: error: unrecognizable insn:
(call_insn/j 11 10 12 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:399 (parallel [
(call (mem:SI (reg/f:SI 101) [0 S4 A32])
(const_int 0 [0x0]))
(return)
(use (const_int 0 [0x0]))
]) -1 (nil)
(nil)
(expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
(nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------
7) same kind - BAD INSN
~this()
{
if (state != TS.FINISHED)
CloseHandle(hdl); <<<<<< BAD INSN
}
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In member function '_dtor':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127: error: unrecognizable insn:
(call_insn/j 19 18 20 1 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:126 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (reg/f:SI 104) [0 S4 A32])
(const_int 0 [0x0])))
(return)
(use (const_int 0 [0x0]))
]) -1 (nil)
(nil)
(expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
(nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
------------------------------------------------------------------------------
8)invariant not recomputed when ADDR_EXPR changed error
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d: In function 'stdout':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: error: invariant not recomputed when ADDR_EXPR changed
&_iobD.894[0];
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------
9) Same error as 5) in libphobos/internal/gc/win32.d due to x86 ASM
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:75: function win32.os_query_stackBottom expected to return a value of type void*
make[3]: *** [internal/gc/win32.o] Error 1
------------------------------------------------------------------------------
10) BAD INSN in libphobos/internal/gc/win32.d:69
pthread_t pthread_self()
{
//printf("pthread_self() = %x\n", GetCurrentThreadId());
return cast(pthread_t) GetCurrentThreadId();
}
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d: In function 'pthread_self':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:69: error: unrecognizable insn:
(call_insn/j 10 9 11 0 /d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:68 (parallel [
(set (reg:SI 0 r0)
(call (mem:SI (reg/f:SI 103) [0 S4 A32])
(const_int 0 [0x0])))
(return)
(use (const_int 0 [0x0]))
]) -1 (nil)
(nil)
(nil))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:69: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
Comment #1 by forumer — 2008-07-11T10:38:19Z
compiled with gcc 4.1.0.
All the bad insn error seems to be fixed when passing -fno-optimize-sibling-calls.
Comment #2 by ibuclaw — 2012-07-06T05:17:27Z
Closing as we no longer support this version of GCC.
MinGW binaries are available for version 4.5 I believe and I haven't had such report that this issue is occurring.