Bug 4448 – labeled break doesn't work in CTFE

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
Other
OS
Windows
Creation time
2010-07-11T15:12:00Z
Last change time
2011-06-23T00:31:51Z
Assigned to
nobody
Creator
shro8822

Comments

Comment #0 by shro8822 — 2010-07-11T15:12:45Z
string CTFE(string s) { int i, j; L1: for(i = 0; i < s.length; i++) switch(s[i]) { case ' ', '\n', '\r', '\t': continue; default: break L1; } L2: for(j = s.length; j > i; j--) switch(s[j-1]) { case ' ', '\n', '\r', '\t': continue; default: break L2; } return s[i..j]; } import std.stdio; pragma(msg, CTFE(" hello world!\n")); void main(){ writef("'%s'\n", CTFE(" hello world!\n")); } the function works at runtime but fails under CTFE. There may be a few cases where labeled break may be hard to deal with but this one shouldn't cause problems.
Comment #1 by clugdbug — 2011-06-23T00:31:51Z