dmd2 --> ddmd. Merge (almost all of) our changes to dmd source into the new D source of dmd 2.069.2.

Also adds the CMake infrastructure to compile and link the D source files.

The build is partially broken:
- A few files in Phobos and druntime do not build
- MSVC build is broken because of unresolved symbols involving reals
This commit is contained in:
Johan Engelen 2016-01-28 19:03:58 +01:00
parent 9ae8ce6165
commit 29ce4012af
234 changed files with 3188 additions and 131299 deletions

View file

@ -34,10 +34,10 @@
// FIXME: this needs to be cleaned up
void DtoResolveClass(ClassDeclaration *cd) {
if (cd->ir.isResolved()) {
if (cd->ir->isResolved()) {
return;
}
cd->ir.setResolved();
cd->ir->setResolved();
IF_LOG Logger::println("DtoResolveClass(%s): %s", cd->toPrettyChars(),
cd->loc.toChars());
@ -45,7 +45,7 @@ void DtoResolveClass(ClassDeclaration *cd) {
// make sure the base classes are processed first
for (auto bc : *cd->baseclasses) {
DtoResolveClass(bc->base);
DtoResolveClass(bc->sym);
}
// make sure type exists
@ -466,7 +466,7 @@ static LLConstant *build_offti_entry(ClassDeclaration *cd, VarDeclaration *vd) {
}
static LLConstant *build_offti_array(ClassDeclaration *cd, LLType *arrayT) {
IrAggr *iraggr = cd->ir.irAggr;
IrAggr *iraggr = cd->ir->irAggr;
size_t nvars = iraggr->varDecls.size();
std::vector<LLConstant *> arrayInits(nvars);