diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 61246af8be8..6848060c05a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2004-11-03 Jonathan Wakely + + * include/bits/stl_numeric.h (partial_sum, adjacent_difference): + Avoid dereferencing two times __first in the prologue. + 2004-11-03 Paolo Carlini * include/bits/stl_numeric.h: Trivial formatting fixes. diff --git a/libstdc++-v3/include/bits/stl_numeric.h b/libstdc++-v3/include/bits/stl_numeric.h index fc15fe3fc52..a11a0404e9a 100644 --- a/libstdc++-v3/include/bits/stl_numeric.h +++ b/libstdc++-v3/include/bits/stl_numeric.h @@ -209,8 +209,8 @@ namespace std if (__first == __last) return __result; - *__result = *__first; _ValueType __value = *__first; + *__result = __value; while (++__first != __last) { __value = __value + *__first; @@ -249,8 +249,8 @@ namespace std if (__first == __last) return __result; - *__result = *__first; _ValueType __value = *__first; + *__result = __value; while (++__first != __last) { __value = __binary_op(__value, *__first); @@ -285,8 +285,8 @@ namespace std if (__first == __last) return __result; - *__result = *__first; _ValueType __value = *__first; + *__result = __value; while (++__first != __last) { _ValueType __tmp = *__first; @@ -324,8 +324,8 @@ namespace std if (__first == __last) return __result; - *__result = *__first; _ValueType __value = *__first; + *__result = __value; while (++__first != __last) { _ValueType __tmp = *__first;