www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1021] New: CTFE and functions returning void

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1021

           Summary: CTFE and functions returning void
           Product: D
           Version: 1.007
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: fvbommel wxs.nl


Functions returning void can't be executed at compile time, even if they have
out/inout parameters:
---
urxae urxae:~/tmp$ cat test.d
void bar(out int x) { x = 2; }

int foo() { int y; bar(y); return y; }

const int z = foo();

void main(){}

urxae urxae:~/tmp$ dmd test.d
test.d(3): Error: cannot evaluate bar(y) at compile time
test.d(5): Error: cannot evaluate foo() at compile time
---

If bar returns an unused int it compiles fine:
---
urxae urxae:~/tmp$ cat test.d
int bar(out int x) { x = 2; return 1; }

int foo() { int y; bar(y); return y; }

const int z = foo();

void main(){}

urxae urxae:~/tmp$ dmd test.d
gcc test.o -o test -m32 -lphobos -lpthread -lm -Xlinker
-L/home/urxae/opt/dmd/lib 
---


-- 
Mar 04 2007
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1021


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED





Fixed DMD 1.009


-- 
Mar 19 2007
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1021






Added to DStress as
http://dstress.kuehne.cn/compile/i/inerpret_05_A.d
http://dstress.kuehne.cn/compile/i/inerpret_05_B.d


-- 
Mar 29 2007