Summary: CTFE fails to compare strings correctly
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: CTFE
          Severity: regression
          Priority: P2
         Component: DMD

--- Comment #0 from Rainer Schuetze <> 2012-10-14 06:16:27 
PDT ---
Compiling with current version from github:

bool test()
    string op1 = "aa";
    string op2 = "b";
    assert("b" >= "aa");
    assert(op2 >= op1);
    return true;


void main()


test.d(7): Error: assert(op2 >= op1) failed
test.d(11):        called from here: test()

This does not happen with dmd 2.060. The regression was probably introduced
with this commit:

SHA-1: f3ee71f1f422fd0ee8863109469f4065a8305b5f

* Merge pull request #1114 from donc/ctfe8644_arrayliteralcmp

Fix bug 8644 - CTFE doesn't support string <,> on array literals

and is caused by ctfeRawCmp in interpret.c changing the semantics of the
comparison, because it compares the length of arrays before looking at the

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to