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*
