D.gnu - body and in statement with gdc
- manfred toppoint.de (56/56) Mar 24 2004 Hello,
- s31552 mail.ecc.u-tokyo.ac.jp (42/46) Mar 24 2004 I found the minimal code of this problem.
- s31552 mail.ecc.u-tokyo.ac.jp (19/19) Mar 24 2004 I'm sorry I post continuously.
Hello, in file socket.d i get an error message: gdc -c socket.d socket.d: In function `add': socket.d:0: interner Compiler-Fehler: Speicherzugriffsfehler Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. the function add start in line 780 . Here is a code snip typedef int socket_t = -1; const socket_t INVALID_SOCKET = socket_t.init; void add(socket_t s) // /* in { version(Win32) { assert(count < max); //added too many sockets; specify a higher max in the constructor } } body // */ { version(Win32) { uint c = count; first[c] = s; count = c + 1; } else version(linux) { //bts(cast(uint*)&first[fdelt(s)], cast(uint)s % nfdbits); } else { static assert(0); } } You can put this in a file and try to compile there appear the same error message. I believe the problem is the "in" and "body" statements. Manfred
Mar 24 2004
I believe the problem is the "in" and "body" statements.I found the minimal code of this problem. void bug() in { version (Win32) { // it's safe when it is 'linux' (on Linux) } } body { } And I found another fatal bug: void bug() { char[][int] a; int[] i = a.keys; }gdc -c bug_assoc_key.dbug_assoc_key.d: In function `bug': bug_assoc_key.d:0: internal compiler error: in emit_move_insn, at expr.c:3165 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. And not fatal bug: void bug() { typedef double D; D d = cast(D)0.0; }gdc -c bug_typedef_double_cast.dbug_typedef_double_cast.d: In function `bug': bug_typedef_double_cast.d:0: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. And I cannot judge whether it's a bug or not: void bug() { int d = 1; d /= 1.0; }gdc -c bug_double_div.dbug_double_div.d: In function `bug': bug_double_div.d:0: internal compiler error: in expand_fix, at optabs.c:4905 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. ------------------ shinichiro.h s31552 mail.ecc.u-tokyo.ac.jp http://user.ecc.u-tokyo.ac.jp/~s31552/wp/
Mar 24 2004
I'm sorry I post continuously. I found another fatal bug: class Base { void bug() {} } class Derived : Base { void bug() { super.bug(); } // call Derived::bug! } int main() { Base b = new Derived(); b.bug(); return 0; } It can be compiled and linked, but it fail with segmentation fault. Because super.bug() call Derived::bug() recursively. ------------------ shinichiro.h s31552 mail.ecc.u-tokyo.ac.jp http://user.ecc.u-tokyo.ac.jp/~s31552/wp/
Mar 24 2004