[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