[flang] Change memcpy to memmove for overlap case.
authorpeter klausler <pklausler@nvidia.com>
Wed, 20 Jun 2018 22:12:13 +0000 (15:12 -0700)
committerpeter klausler <pklausler@nvidia.com>
Fri, 22 Jun 2018 21:58:04 +0000 (14:58 -0700)
Original-commit: flang-compiler/f18@cb400284e48a486922ee4420f02448eb68966fcf
Reviewed-on: https://github.com/flang-compiler/f18/pull/111
Tree-same-pre-rewrite: false

flang/lib/parser/source.cc

index 2497722..acaaf29 100644 (file)
@@ -85,12 +85,12 @@ static std::size_t RemoveCarriageReturns(char *buffer, std::size_t bytes) {
     void *crvp{std::memchr(vp, '\r', bytes)};
     char *crcp{static_cast<char *>(crvp)};
     if (crcp == nullptr) {
-      std::memcpy(buffer + wrote, p, bytes);
+      std::memmove(buffer + wrote, p, bytes);
       wrote += bytes;
       break;
     }
     std::size_t chunk = crcp - p;
-    std::memcpy(buffer + wrote, p, chunk);
+    std::memmove(buffer + wrote, p, chunk);
     wrote += chunk;
     p += chunk + 1;
     bytes -= chunk + 1;