diff --git a/dmd2/expression.c b/dmd2/expression.c index cf770f85..1cb3a65d 100644 --- a/dmd2/expression.c +++ b/dmd2/expression.c @@ -8746,8 +8746,11 @@ Expression *ShlAssignExp::semantic(Scope *sc) typeCombine(sc); e1->checkIntegral(); e2 = e2->checkIntegral(); - //e2 = e2->castTo(sc, Type::tshiftcnt); - e2 = e2->castTo(sc, e1->type); // LDC +#if IN_DMD + e2 = e2->castTo(sc, Type::tshiftcnt); +#elif IN_LLVM + e2 = e2->castTo(sc, e1->type); +#endif return this; } @@ -8775,8 +8778,11 @@ Expression *ShrAssignExp::semantic(Scope *sc) typeCombine(sc); e1->checkIntegral(); e2 = e2->checkIntegral(); - //e2 = e2->castTo(sc, Type::tshiftcnt); - e2 = e2->castTo(sc, e1->type); // LDC +#if IN_DMD + e2 = e2->castTo(sc, Type::tshiftcnt); +#elif IN_LLVM + e2 = e2->castTo(sc, e1->type); +#endif return this; } @@ -9343,7 +9349,8 @@ Expression *ShrExp::semantic(Scope *sc) e1 = e1->checkIntegral(); e2 = e2->checkIntegral(); e1 = e1->integralPromotions(sc); - e2 = e2->castTo(sc, Type::tshiftcnt); + //e2 = e2->castTo(sc, Type::tshiftcnt); + e2 = e2->castTo(sc, e1->type); // LDC type = e1->type; } return this; @@ -9367,7 +9374,8 @@ Expression *UshrExp::semantic(Scope *sc) e1 = e1->checkIntegral(); e2 = e2->checkIntegral(); e1 = e1->integralPromotions(sc); - e2 = e2->castTo(sc, Type::tshiftcnt); + //e2 = e2->castTo(sc, Type::tshiftcnt); + e2 = e2->castTo(sc, e1->type); // LDC type = e1->type; } return this; diff --git a/gen/main.cpp b/gen/main.cpp index aa600f2c..067e7637 100644 --- a/gen/main.cpp +++ b/gen/main.cpp @@ -311,12 +311,14 @@ int main(int argc, char** argv) } else if (!noDefaultLib) { +#if !DMDV2 global.params.linkswitches->push(mem.strdup("-lldc-runtime")); global.params.linkswitches->push(mem.strdup("-ltango-cc-tango")); global.params.linkswitches->push(mem.strdup("-ltango-gc-basic")); // pass the runtime again to resolve issues // with linking order global.params.linkswitches->push(mem.strdup("-lldc-runtime")); +#endif } if (global.params.run) diff --git a/gen/runtime.cpp b/gen/runtime.cpp index bc9a8eb6..7fbd8306 100644 --- a/gen/runtime.cpp +++ b/gen/runtime.cpp @@ -328,7 +328,11 @@ static void LLVM_D_BuildRuntimeModule() // Object _d_allocclass(ClassInfo ci) { +#if DMDV2 + std::string fname("_d_newclass"); +#else std::string fname("_d_allocclass"); +#endif std::vector types; types.push_back(classInfoTy); const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false);