Thread overview | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
July 12, 2007 [Issue 1337] New: Internal error: eh.c 41 - alloca & synchronized(this) | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=1337 Summary: Internal error: eh.c 41 - alloca & synchronized(this) Product: D Version: 1.018 Platform: PC URL: http://paste.dprogramming.com/dpz51jpz.php OS/Version: Linux Status: NEW Keywords: ice-on-valid-code Severity: major Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: a.panek@brainsware.org It seems like the combination of memory allocated with stdc's alloca() function and synchronized(this) [as shown in the outcommented code in the paste] cause an internal error in eh.c. Neither a D-way copy .. synchronized (this) list[] = queueList; ..nor a memcpy.. synchronized (this) memcpy (list.ptr, queueList.ptr, len * (QueueFile*).sizeof); fixed this error. It has been worked around via creating a synchronized copy method to perform the same action. -- |
July 12, 2007 [Issue 1337] Internal error: eh.c 41 - alloca & synchronized(this) | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 ------- Comment #1 from bugzilla@digitalmars.com 2007-07-12 18:06 ------- Please provide a complete reproducible sample. -- |
May 26, 2009 [Issue 1337] ICE(eh.c) No test case | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug@yahoo.com.au Summary|Internal error: eh.c 41 - |ICE(eh.c) No test case |alloca & synchronized(this) | --- Comment #2 from Don <clugdbug@yahoo.com.au> 2009-05-26 01:00:32 PDT --- Original title was: Internal error: eh.c 41 - alloca & synchronized(this) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
July 10, 2009 [Issue 1337] ICE(eh.c) No test case | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID --- Comment #3 from Don <clugdbug@yahoo.com.au> 2009-07-10 00:03:11 PDT --- As this has been open for 2 years without anyone providing a complete test case, I'm closing this as invalid. Reopen if you have a test case. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
July 10, 2009 [Issue 1337] ICE(eh.c) No test case | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 --- Comment #4 from Sobirari Muhomori <maxmo@pochta.ru> 2009-07-10 04:41:07 PDT --- This can be a test case, I didn't check it for 1.018, it works on 2.031. --- struct QueueFile{ int size,channel; } class A { QueueFile[] queueList; final synchronized void copy (QueueFile[] dst, QueueFile src[]) { dst[] = src; } final void watchdog () { auto len = queueList.length; auto list = (cast(QueueFile*) alloca(len * QueueFile.sizeof))[0..len]; // clone the list of queues to avoid stalling everything //copy (list, queueList); synchronized (this) memcpy (list.ptr, queueList.ptr, len * (QueueFile*).sizeof); //list[] = queueList; foreach (q; list) { if (q.size) writeln (q.channel); //if (q.isDirty) //{ // q.flush; // log.info ("flushed "~q.channel.name~" to disk"); //} } } } --- -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
July 10, 2009 [Issue 1337] ICE(eh.c) No test case | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 Brad Roberts <braddr@puremagic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |braddr@puremagic.com Resolution|INVALID | --- Comment #5 from Brad Roberts <braddr@puremagic.com> 2009-07-10 10:35:03 PDT --- Reopening so the new code can be looked at. However... Term clarification 'it works on 2.031'? Does that mean that it compiles successfully or unsuccessfully? If unsuccessfully, with the same error? If it's not the same error, please include the current error message. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
July 13, 2009 [Issue 1337] ICE(eh.c) No test case | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 --- Comment #6 from Sobirari Muhomori <maxmo@pochta.ru> 2009-07-13 01:21:21 PDT --- compiles successfully -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
July 27, 2009 [Issue 1337] ICE(eh.c) No test case | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=1337 Brad Roberts <braddr@puremagic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution| |INVALID --- Comment #7 from Brad Roberts <braddr@puremagic.com> 2009-07-27 00:52:38 PDT --- Reclosing. If the new example code compiles, then it's not exactly a repro case for the bug, unless it failed to compile with an older version of the code. Without good info, I agree with Don's assessment.. might as well close it as an invalid bug report. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation