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
Fixed dmd 1.028 and 2.012
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル