[Rcpp-commits] r2936 - in pkg/Rcpp: . inst inst/include src
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sat Apr 2 20:42:02 CEST 2011
Author: edd
Date: 2011-04-02 20:42:00 +0200 (Sat, 02 Apr 2011)
New Revision: 2936
Modified:
pkg/Rcpp/ChangeLog
pkg/Rcpp/inst/NEWS
pkg/Rcpp/inst/include/RcppCommon.h
pkg/Rcpp/src/exceptions.cpp
Log:
fix g++ 4.6 issue by including exception_defines.h only if g++ is 4.5 or earlier
updated ChangeLog and NEWS
edited NEWS a little to match previous style (as opposed to ChangeLog mode)
Modified: pkg/Rcpp/ChangeLog
===================================================================
--- pkg/Rcpp/ChangeLog 2011-04-02 18:11:49 UTC (rev 2935)
+++ pkg/Rcpp/ChangeLog 2011-04-02 18:42:00 UTC (rev 2936)
@@ -1,5 +1,8 @@
2011-04-02 Dirk Eddelbuettel <edd at debian.org>
+ * inst/include/RcppCommon.h: Define new variable for g++ < 4.6.0
+ * src/exceptions.cpp: Include <exception_defines.h> up to g++-4.5 only
+
* inst/unitTests/testRcppModule/src/stdVector.cpp: Use #ifdef not #if
* inst/include/Rcpp/module/Module_generated_ctor_signature.h: Add a
Modified: pkg/Rcpp/inst/NEWS
===================================================================
--- pkg/Rcpp/inst/NEWS 2011-04-02 18:11:49 UTC (rev 2935)
+++ pkg/Rcpp/inst/NEWS 2011-04-02 18:42:00 UTC (rev 2936)
@@ -1,13 +1,16 @@
0.9.3 2011-xx-yy
- o inst/doc/Makefile now respects $R_HOME environment variable
+ o Exceptions code include exception_defines.h only when g++ is 4.5 or
+ younger as the file no longer exists with g++-4.6
+
+ o The inst/doc/Makefile now respects the $R_HOME environment variable
- o inst/include/Rcpp/grow.h: C++ conformance issue found by clang/llvm
- addressed by re-ordering declarations as unqualified names must be
- declared before they are used, even when used within templates
+ o C++ conformance issue found by clang/llvm addressed by re-ordering
+ declarations in grow.h as unqualified names must be declared before
+ they are used, even when used within templates
- o inst/include/RcppCommon.h: The 'long long' typedef now depends on
- C++0x being enabled as this was not a feature in C++98
+ o The 'long long' typedef now depends on C++0x being enabled as this
+ was not a feature in C++98; this suppresses a new g++-4.5 warning
0.9.2 2011-02-23
Modified: pkg/Rcpp/inst/include/RcppCommon.h
===================================================================
--- pkg/Rcpp/inst/include/RcppCommon.h 2011-04-02 18:11:49 UTC (rev 2935)
+++ pkg/Rcpp/inst/include/RcppCommon.h 2011-04-02 18:42:00 UTC (rev 2936)
@@ -86,6 +86,10 @@
#if GCC_VERSION >= 40500
#define IS_GCC_450_OR_LATER
#endif
+ // g++ 4.6 no longer has exception_defines.h so need a flag for that
+ #if GCC_VERSION < 40600
+ #define IS_EARLIER_THAN_GCC_460
+ #endif
#endif
#ifdef __INTEL_COMPILER
Modified: pkg/Rcpp/src/exceptions.cpp
===================================================================
--- pkg/Rcpp/src/exceptions.cpp 2011-04-02 18:11:49 UTC (rev 2935)
+++ pkg/Rcpp/src/exceptions.cpp 2011-04-02 18:42:00 UTC (rev 2936)
@@ -66,7 +66,9 @@
compilers */
#ifdef RCPP_HAS_DEMANGLING
#include <typeinfo>
+#ifdef IS_EARLIER_THAN_GCC_460
#include <exception_defines.h>
+#endif
#include <cxxabi.h>
std::string demangle( const std::string& name ){
More information about the Rcpp-commits
mailing list