[llvm-commits] [dragonegg] r159678 - in /dragonegg/trunk: include/x86/dragonegg/Target.h src/x86/Target.cpp

Duncan Sands baldrick at free.fr
Tue Jul 3 12:34:32 PDT 2012


Author: baldrick
Date: Tue Jul  3 14:34:32 2012
New Revision: 159678

URL: http://llvm.org/viewvc/llvm-project?rev=159678&view=rev
Log:
Add support for using dragonegg+x32 with versions of gcc < 4.7 that have had x32
support backported to them.  That means not doing a GCC version test, but instead
testing whether TARGET_X32 is defined or not.  Checking this in the header file
is fragile since TARGET_X32 will only be defined if the right other header was
included first.  Avoid such issues by moving the check to Target.cpp.  Patch by
Michael Liao.

Modified:
    dragonegg/trunk/include/x86/dragonegg/Target.h
    dragonegg/trunk/src/x86/Target.cpp

Modified: dragonegg/trunk/include/x86/dragonegg/Target.h
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/include/x86/dragonegg/Target.h?rev=159678&r1=159677&r2=159678&view=diff
==============================================================================
--- dragonegg/trunk/include/x86/dragonegg/Target.h (original)
+++ dragonegg/trunk/include/x86/dragonegg/Target.h Tue Jul  3 14:34:32 2012
@@ -374,10 +374,10 @@
 #define LLVM_OVERRIDE_TARGET_ARCH() \
   (TARGET_64BIT ? "x86_64" : "i386")
 
-#if (GCC_MINOR > 6)
+extern const char *llvm_x86_override_target_environment();
+
 #define LLVM_OVERRIDE_TARGET_ENVIRONMENT() \
-  (TARGET_X32 ? "gnux32" : "")
-#endif
+  llvm_x86_override_target_environment()
 
 #define LLVM_ASM_EXTENSIONS(ESCAPED_CHAR, ASM, RESULT)			\
   else if ((ESCAPED_CHAR) == 'v') {					\

Modified: dragonegg/trunk/src/x86/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/x86/Target.cpp?rev=159678&r1=159677&r2=159678&view=diff
==============================================================================
--- dragonegg/trunk/src/x86/Target.cpp (original)
+++ dragonegg/trunk/src/x86/Target.cpp Tue Jul  3 14:34:32 2012
@@ -1824,3 +1824,11 @@
   else
     return !isSingleElementStructOrArray(type, false, true);
 }
+
+const char *llvm_x86_override_target_environment() {
+#ifdef TARGET_X32
+  return TARGET_X32 ? "gnux32" : "";
+#else
+  return "";
+#endif
+}





More information about the llvm-commits mailing list