[Issue 2982] New: Assertion failure in function if() clause
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Fri May 15 13:25:48 PDT 2009
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=2982
           Summary: Assertion failure in function if() clause
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: andrei at metalanguage.com
This code:
auto max(Ts...)(Ts args)
if (Ts.length >= 2
        && is(typeof(Ts[0].init > Ts[1].init ? Ts[1].init : Ts[0].init)))
{
    static if (Ts.length == 2)
        return args[1] > args[0] ? args[1] : args[0];
    else
        return max(max(args[0], args[1]), args[2 .. $]);
}
void main() {
   assert(max(4, 5) == 5);
   assert(max(2.2, 4.5) == 4.5);
   assert(max("Little", "Big") == "Little");
   assert(max(4, 5.5) == 5.5);
   assert(max(5.5, 4) == 5.5);
}
is greeted with this error:
dmd: inline.c:1423: Expression* FuncDeclaration::doInline(InlineScanState*,
Expression*, Array*): Assertion `parameters->dim == arguments->dim' failed.
Aborted
dmd: inline.c:1423: Expression* FuncDeclaration::doInline(InlineScanState*,
Expression*, Array*): Assertion `parameters->dim == arguments->dim' failed.
Aborted
when compiled with "-unittest -O -release -inline", and with this error:
dmd: glue.c:939: virtual unsigned int Type::totym(): Assertion `0' failed.
Aborted
when compiled without flags.
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
    
    
More information about the Digitalmars-d-bugs
mailing list