Charmonizer function to disable strict aliasing optimization

Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/fae078a9
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/fae078a9
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/fae078a9

Branch: refs/heads/master
Commit: fae078a9866b601993b4b92d8989c97f8df0dcaa
Parents: 4413eaa
Author: Nick Wellnhofer <[email protected]>
Authored: Sun Mar 24 15:51:05 2013 +0100
Committer: Nick Wellnhofer <[email protected]>
Committed: Sun Mar 24 17:13:47 2013 +0100

----------------------------------------------------------------------
 charmonizer/src/Charmonizer/Core/Compiler.c |    7 +++++++
 charmonizer/src/Charmonizer/Core/Compiler.h |    5 +++++
 2 files changed, 12 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/fae078a9/charmonizer/src/Charmonizer/Core/Compiler.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.c 
b/charmonizer/src/Charmonizer/Core/Compiler.c
index a5de6a9..151d89a 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.c
+++ b/charmonizer/src/Charmonizer/Core/Compiler.c
@@ -376,6 +376,13 @@ chaz_CC_set_optimization_level(const char *level) {
     free(flag);
 }
 
+void
+chaz_CC_disable_strict_aliasing() {
+    if (!chaz_CC.intval__MSC_VER) {
+       chaz_CC_add_extra_cflags("-fno-strict-aliasing");
+    }
+}
+
 const char*
 chaz_CC_get_cc(void) {
     return chaz_CC.cc_command;

http://git-wip-us.apache.org/repos/asf/lucy/blob/fae078a9/charmonizer/src/Charmonizer/Core/Compiler.h
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.h 
b/charmonizer/src/Charmonizer/Core/Compiler.h
index 6fc4a5e..b95136f 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.h
+++ b/charmonizer/src/Charmonizer/Core/Compiler.h
@@ -89,6 +89,11 @@ chaz_CC_add_include_dir(const char *dir);
 void
 chaz_CC_set_optimization_level(const char *level);
 
+/* Disable strict aliasing.
+ */
+void
+chaz_CC_disable_strict_aliasing();
+
 /* Accessor for the compiler executable's string representation.
  */
 const char*

Reply via email to