diff --git a/dmd/mars.c b/dmd/mars.c index 0ee26249..6e7c1229 100644 --- a/dmd/mars.c +++ b/dmd/mars.c @@ -337,6 +337,8 @@ int main(int argc, char *argv[]) #error #endif /* linux */ + assert(global.params.os != OSinvalid); + //VersionCondition::addPredefinedGlobalIdent("D_Bits"); VersionCondition::addPredefinedGlobalIdent("all"); @@ -786,6 +788,8 @@ int main(int argc, char *argv[]) assert(0 && "Invalid arch"); } + assert(global.params.cpu != ARCHinvalid); + if (allowForceEndianness && global.params.forceBE) { VersionCondition::addPredefinedGlobalIdent("BigEndian"); global.params.isLE = false; diff --git a/dmd/mars.h b/dmd/mars.h index 6023c907..e14e5cf2 100644 --- a/dmd/mars.h +++ b/dmd/mars.h @@ -40,6 +40,7 @@ struct Array; // LLVMDC enum ARCH { + ARCHinvalid, ARCHx86, ARCHx86_64, ARCHppc, @@ -48,6 +49,7 @@ enum ARCH enum OS { + OSinvalid, OSLinux, OSWindows, OSMacOSX diff --git a/gen/toobj.cpp b/gen/toobj.cpp index 1a237ddf..4da50bb3 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -192,7 +192,7 @@ void Module::genobjfile(int multiobj) if (global.params.disassemble) { Logger::println("Writing LLVM asm to: %s\n", llfile->name->toChars()); std::ofstream aos(llpath.c_str()); - ir.module->print(aos); + ir.module->print(aos, NULL); } delete ir.module; diff --git a/runtime/internal/critical.c b/runtime/internal/critical.c index 36cedd34..9bb41143 100644 --- a/runtime/internal/critical.c +++ b/runtime/internal/critical.c @@ -81,7 +81,7 @@ void _STD_critical_term() #include #include -#if __APPLE__ +#if !linux #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE #endif diff --git a/runtime/internal/monitor.c b/runtime/internal/monitor.c index 85042404..3f5a22fb 100644 --- a/runtime/internal/monitor.c +++ b/runtime/internal/monitor.c @@ -127,7 +127,7 @@ void _d_monitor_unlock(Object *h) #if USE_PTHREADS -#if __APPLE__ +#if !linux #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE #endif