comparison dmd/mtype.c @ 387:cbb65e65236b

Fix argument types for wchar/char reverse and sort.
author Christian Kamm <kamm incasoftware de>
date Thu, 24 Jul 2008 18:20:40 +0200
parents d632801b15f0
children 722f5e90c39c
comparison
equal deleted inserted replaced
386:1fd4cacea60e 387:cbb65e65236b
1545 static char *name[2] = { "_adReverseChar", "_adReverseWchar" }; 1545 static char *name[2] = { "_adReverseChar", "_adReverseWchar" };
1546 1546
1547 nm = name[n->ty == Twchar]; 1547 nm = name[n->ty == Twchar];
1548 //LLVMDC: Build arguments. 1548 //LLVMDC: Build arguments.
1549 Arguments* args = new Arguments; 1549 Arguments* args = new Arguments;
1550 Type* arrty = n->ty == Twchar ? Type::tchar->arrayOf() : Type::twchar->arrayOf(); 1550 Type* arrty = n->ty == Twchar ? Type::twchar->arrayOf() : Type::tchar->arrayOf();
1551 args->push(new Argument(STCin, arrty, NULL, NULL)); 1551 args->push(new Argument(STCin, arrty, NULL, NULL));
1552 fd = FuncDeclaration::genCfunc(args, Type::tvoid->arrayOf(), nm); 1552 fd = FuncDeclaration::genCfunc(args, arrty, nm);
1553 1553
1554 ec = new VarExp(0, fd); 1554 ec = new VarExp(0, fd);
1555 e = e->castTo(sc, n->arrayOf()); // convert to dynamic array 1555 e = e->castTo(sc, n->arrayOf()); // convert to dynamic array
1556 arguments = new Expressions(); 1556 arguments = new Expressions();
1557 arguments->push(e); 1557 arguments->push(e);
1567 static char *name[2] = { "_adSortChar", "_adSortWchar" }; 1567 static char *name[2] = { "_adSortChar", "_adSortWchar" };
1568 1568
1569 nm = name[n->ty == Twchar]; 1569 nm = name[n->ty == Twchar];
1570 //LLVMDC: Build arguments. 1570 //LLVMDC: Build arguments.
1571 Arguments* args = new Arguments; 1571 Arguments* args = new Arguments;
1572 Type* arrty = n->ty == Twchar ? Type::tchar->arrayOf() : Type::twchar->arrayOf(); 1572 Type* arrty = n->ty == Twchar ? Type::twchar->arrayOf() : Type::tchar->arrayOf();
1573 args->push(new Argument(STCin, arrty, NULL, NULL)); 1573 args->push(new Argument(STCin, arrty, NULL, NULL));
1574 fd = FuncDeclaration::genCfunc(args, Type::tvoid->arrayOf(), nm); 1574 fd = FuncDeclaration::genCfunc(args, arrty, nm);
1575 1575
1576 ec = new VarExp(0, fd); 1576 ec = new VarExp(0, fd);
1577 e = e->castTo(sc, n->arrayOf()); // convert to dynamic array 1577 e = e->castTo(sc, n->arrayOf()); // convert to dynamic array
1578 arguments = new Expressions(); 1578 arguments = new Expressions();
1579 arguments->push(e); 1579 arguments->push(e);