digitalmars.D.learn - Strange error
- Temtaime (9/9) Jul 04 2013 Hello guys !
- monarch_dodra (38/47) Jul 04 2013 Looks like a bug related with size 0 matrices: It makes you
Hello guys ! I'm found strange error when compiling following code: http://dpaste.1azy.net/b40ce9a4 The error is: src\phobos\std\stdio.d(1872): Error: variable _param_1 used before set Problem exists only when using following options: -inline -O I'm using DMD 2.063.2 on Windows. Can anybody help with it ? Also i can't minimize the test-case.
Jul 04 2013
On Thursday, 4 July 2013 at 08:34:24 UTC, Temtaime wrote:Hello guys ! I'm found strange error when compiling following code: http://dpaste.1azy.net/b40ce9a4 The error is: src\phobos\std\stdio.d(1872): Error: variable _param_1 used before set Problem exists only when using following options: -inline -O I'm using DMD 2.063.2 on Windows. Can anybody help with it ? Also i can't minimize the test-case.Looks like a bug related with size 0 matrices: It makes you declare an empty static array, which then does some conflicts, since the code to "initialize" it is optimized out. Reduced test case: -------- struct S { int[0] a; void do_it() { foo(a); } } void foo(Args...)(Args args) { foreach(arg; args) if (arg.ptr == null) return; bar(args); } void bar(Args...)(Args args) { baz(args); } void baz(Args...)(Args args) { foreach(arg; args) if (arg.ptr == null) return; } void main() {} -------- I've filed it: http://d.puremagic.com/issues/show_bug.cgi?id=10540 To workaround it, I'd suggest writing your code in such a way that you stop the recursion a "1", and not "0".
Jul 04 2013