[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