* mln/data/memcpy_.hh
(mln::data::impl_::memcpy__<Pd, Ps>(Pd&, const Ps&, std::size_t)):
Here.
---
milena/ChangeLog | 8 ++++++++
milena/mln/data/memcpy_.hh | 19 ++++++++++---------
2 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 02b9e65..3549cff 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,11 @@
+2011-09-12 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Stop warning about Debian's g++ 4.2 compiler issues.
+
+ * mln/data/memcpy_.hh
+ (mln::data::impl_::memcpy__<Pd, Ps>(Pd&, const Ps&, std::size_t)):
+ Here.
+
2011-09-12 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/value/builtin/carrays.hh: Fix a compilation error with
diff --git a/milena/mln/data/memcpy_.hh b/milena/mln/data/memcpy_.hh
index 77701b2..7453fab 100644
--- a/milena/mln/data/memcpy_.hh
+++ b/milena/mln/data/memcpy_.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -89,16 +89,17 @@ namespace mln
return;
}
- /* FIXME: Careful, the code generated for this function by g++
- 4.2 with high a optimization level (`-O3') and without
+ /* Careful, the code generated for this function by g++ 4.2
+ with a high optimization level (`-O3') and without
`-fno-strict-aliasing' might be wrong (at least with
Debian's g++ 4.2 on IA-32)! Note that Debian's g++ 4.0,
- 4.1, 4.3 and 4.4 are fine. */
-#if defined(__GNUC__) && defined(__GNUC_MINOR__)
-# if __GNUC__ == 4 && __GNUC_MINOR__ == 2
-# warning The code generated by g++ 4.2 on Debian GNU/Linux 5.0 for IA-32 for this
function might be wrong.
-# endif
-#endif
+ 4.1, 4.3 and 4.4 are fine.
+
+ We used to trigger a warning when g++ 4.2 was detected, but
+ we no longer do this since this warning was popping in
+ virtually every compiler output and because this bug is
+ limited to some specific use cases. Moreover, g++ 4.2 will
+ be less and less used over time. */
if (sizeof(mln_value(Id)) == 1)
{
std::memcpy((void*) (&dest.val()), // violent casts
--
1.7.2.5