changeset 1142:49421d3ac5a7

Automated merge with http://hg.dsource.org/projects/ldc
author Christian Kamm <kamm incasoftware de>
date Tue, 24 Mar 2009 21:18:29 +0100
parents 946fad6c96a1 (diff) f99a3b393c03 (current diff)
children b28a57f4b530
files
diffstat 2 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Tue Mar 24 21:18:18 2009 +0100
+++ b/CMakeLists.txt	Tue Mar 24 21:18:29 2009 +0100
@@ -15,10 +15,12 @@
 else(NOT PKG_CONFIG_FOUND)
     pkg_search_module(LIBCONFIGPP libconfig++)
     if(NOT LIBCONFIGPP_FOUND)
-        message(FATAL_ERROR "libconfig++ not found")
+        set(LIBCONFIG_CXXFLAGS "" CACHE STRING "libconfig++ compiler flags")
+        set(LIBCONFIG_LDFLAGS "" CACHE STRING "libconfig++ linker flags")
+    else(NOT LIBCONFIGPP_FOUND)
+        set(LIBCONFIG_CXXFLAGS ${LIBCONFIGPP_CFLAGS} CACHE STRING "libconfig++ compiler flags")
+        set(LIBCONFIG_LDFLAGS ${LIBCONFIGPP_LDFLAGS} CACHE STRING "libconfig++ linker flags")
     endif(NOT LIBCONFIGPP_FOUND)
-    set(LIBCONFIG_CXXFLAGS ${LIBCONFIGPP_CFLAGS} CACHE STRING "libconfig++ compiler flags")
-    set(LIBCONFIG_LDFLAGS ${LIBCONFIGPP_LDFLAGS} CACHE STRING "libconfig++ linker flags")
 endif(NOT PKG_CONFIG_FOUND)
 
 
--- a/gen/tollvm.cpp	Tue Mar 24 21:18:18 2009 +0100
+++ b/gen/tollvm.cpp	Tue Mar 24 21:18:29 2009 +0100
@@ -20,6 +20,7 @@
 #include "gen/complex.h"
 #include "gen/llvmhelpers.h"
 #include "gen/linkage.h"
+#include "gen/llvm-version.h"
 
 bool DtoIsPassedByRef(Type* type)
 {
@@ -521,8 +522,16 @@
         return LLConstantFP::get(llty, value);
     else if(llty == LLType::X86_FP80Ty) {
         uint64_t bits[] = {0, 0};
+    #if LLVM_REV < 67562
+        // Prior to r67562, the i80 APInt format expected by the APFloat
+        // constructor was different than the memory layout on the actual
+        // processor.
         bits[1] = *(uint16_t*)&value;
         bits[0] = *(uint64_t*)((uint16_t*)&value + 1);
+    #else
+        bits[0] = *(uint64_t*)&value;
+        bits[1] = *(uint16_t*)((uint64_t*)&value + 1);
+    #endif
         return LLConstantFP::get(APFloat(APInt(80, 2, bits)));
     } else {
         assert(0 && "Unknown floating point type encountered");