kubo39's blog

ただの雑記です。

2019-01-01から1ヶ月間の記事一覧

scope parameter storage class と in parameter storage class

(2019/02/07; いくつか追記したのでそちらのほうもみてください) 現在の最新版コンパイラ(DMD 2.084.0)だと, このコードはSEGVで落ちてしまう. auto foo(scope void delegate() @safe dg) @safe { return dg; } auto bar(void delegate() @safe dg) @safe …

DMDでprofileオプションを使ったときだけスタックオーバーフローする不思議なバグの調査

なんかおもしろいコンパイラのバグに遭遇したのでめも。 もともとはpeggedを使ったプロジェクトで dub build --build=profile でビルドしたバイナリを実行するとSEGVに遭遇するんだけど・・・、という問題だった。 とりあえずgdbにかけてみると >>> bt 10 #0…

C言語のmainでめちゃくちゃできる、ってネタみたけど別にDでもできるよな。 main is usually a function はでないけど。 extern (C) void main() pure nothrow @nogc { asm pure nothrow @nogc { naked; db 0x31; db 0xC0; // xor EAX, EAX; db 0xFF; db 0xC…