Remove incorrect assertion from filesystem::absolute
authorJonathan Wakely <jwakely@redhat.com>
Thu, 16 May 2019 22:52:10 +0000 (23:52 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 16 May 2019 22:52:10 +0000 (23:52 +0100)
The assertion is wrong, it should be *s.end() == 0, but that's not
allowed. Just remove it, but keep the comment.

* src/c++17/fs_ops.cc (absolute(const path&, error_code&))
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion.

From-SVN: r271300

libstdc++-v3/ChangeLog
libstdc++-v3/src/c++17/fs_ops.cc

index ac7914db65ef3f19d5e142e371b87064e93317e8..934d5139f7057e93f77dbc4a065a10a759d8453c 100644 (file)
@@ -1,5 +1,8 @@
 2019-05-16  Jonathan Wakely  <jwakely@redhat.com>
 
+       * src/c++17/fs_ops.cc (absolute(const path&, error_code&))
+       [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion.
+
        * include/std/variant (__overload_set): Remove.
        (_Arr): New helper.
        (_Build_FUN): New class template to define a single FUN overload,
index 2d13b172d696924351d6cd7c62c4cf3a33eb41ae..274ee7f083453ad7a20dcac20e1fa8a682debed9 100644 (file)
@@ -96,6 +96,7 @@ fs::absolute(const path& p, error_code& ec)
     }
 
 #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
+  // s must remain null-terminated
   wstring_view s = p.native();
 
   if (p.has_root_directory()) // implies !p.has_root_name()
@@ -108,9 +109,6 @@ fs::absolute(const path& p, error_code& ec)
       s.remove_prefix(std::min(s.length(), pos) - 1);
     }
 
-  // s must be null-terminated
-  __glibcxx_assert(!s.empty() && s.back() == 0);
-
   uint32_t len = 1024;
   wstring buf;
   do