[Issue 1857] New: Runtime segfault while profileing - jump to invalid code address
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Feb 20 14:18:26 PST 2008
http://d.puremagic.com/issues/show_bug.cgi?id=1857
Summary: Runtime segfault while profileing - jump to invalid code
address
Product: D
Version: 2.010
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: webmaster at villagersonline.com
DMD 2.011
Fedora Core 6 x86_64
The following code runs fine when you compile it normally, but segfaults when
you compile it with "-profile". It appears, from looking at gdb and "objdump
-d", that the root problem is that the code jumps to an invalid instruction.
Note, when you test this code, to use the exact code I show here. The error
vanishes if you change very much, even things like type or module names:
BEGIN MODULE: "main.d"
module main;
import rule_pattern;
import std.stdio;
template my_chain(RET_TYPES...)
{
void delegate(RET_TYPES)
of(ARG_TYPES...)(ARG_TYPES args)
{
return null;
}
}
typedef char[] IDENT;
int main()
{
writefln("f");
auto myChain = my_chain!(IDENT, void delegate(rule_pattern*))
.of(delegate void(void delegate(IDENT)) {},
delegate void(void delegate(void
delegate(rule_pattern*))) {});
writefln("a2");
return 0;
}
BEGIN MODULE "rule_pattern.d"
module rule_pattern;
struct rule_pattern {}
END CODE
--
More information about the Digitalmars-d-bugs
mailing list