summaryrefslogtreecommitdiffstats
path: root/contrib/libstdc++/src/codecvt.cc
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libstdc++/src/codecvt.cc')
-rw-r--r--contrib/libstdc++/src/codecvt.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/contrib/libstdc++/src/codecvt.cc b/contrib/libstdc++/src/codecvt.cc
index 1fe6b97..c536979 100644
--- a/contrib/libstdc++/src/codecvt.cc
+++ b/contrib/libstdc++/src/codecvt.cc
@@ -55,12 +55,13 @@ namespace std
codecvt_base::result
codecvt<char, char, mbstate_t>::
do_out(state_type&, const intern_type* __from,
- const intern_type* __from_end, const intern_type*& __from_next,
- extern_type* __to, extern_type* __to_end,
+ const intern_type*, const intern_type*& __from_next,
+ extern_type* __to, extern_type*,
extern_type*& __to_next) const
{
- size_t __len = min(__from_end - __from, __to_end - __to);
- memcpy(__to, __from, __len);
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR19, "If returns noconv [...]
+ // there are no changes to the values in [to, to_limit)."
__from_next = __from;
__to_next = __to;
return noconv;
@@ -78,12 +79,13 @@ namespace std
codecvt_base::result
codecvt<char, char, mbstate_t>::
do_in(state_type&, const extern_type* __from,
- const extern_type* __from_end, const extern_type*& __from_next,
- intern_type* __to, intern_type* __to_end,
+ const extern_type*, const extern_type*& __from_next,
+ intern_type* __to, intern_type*,
intern_type*& __to_next) const
{
- size_t __len = min(__from_end - __from, __to_end - __to);
- memcpy(__to, __from, __len);
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR19, "If returns noconv [...]
+ // there are no changes to the values in [to, to_limit)."
__from_next = __from;
__to_next = __to;
return noconv;
OpenPOWER on IntegriCloud