@philnik777 proposal
diff --git a/libcxx/include/string b/libcxx/include/string
index c72241f..aac2b73 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -1960,10 +1960,10 @@
     if (__s < __min_cap) {
       return static_cast<size_type>(__min_cap) - 1;
     }
-    const size_type __boundary = sizeof(value_type) < __alignment ? __alignment / sizeof(value_type) : 1;
+    const size_type __boundary = sizeof(value_type) < __alignment ? __alignment / sizeof(value_type) : __endian_factor;
     size_type __guess          = __align_it<__boundary>(__s + 1) - 1;
     if (__guess == __min_cap)
-      ++__guess;
+      __guess += 2;
     return __guess;
   }