https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77748

--- Comment #5 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
I think the problem is that tree libstdc++ functions are called,
but the basic_string structure has been c-reduced.
Especially _Alloc_hider, but when that is removed the test
case does no longer reproduce the original problem....

But at least tow externals can be removed easily.
Does this work?

--- pr77550.C.orig      2016-09-27 10:05:17.812179103 +0200
+++ pr77550.C   2016-09-27 10:13:50.407075199 +0200
@@ -231,9 +231,8 @@
   } _M_dataplus;
   size_type _M_string_length;
   enum { _S_local_capacity = 15 } _M_local_buf[_S_local_capacity];
-  pointer _M_local_data();
-  void _M_set_length(size_type);
-  basic_string() : _M_dataplus(_M_local_data()) { _M_set_length(0); }
+  pointer _M_local_data() { return 0; }
+  basic_string() : _M_dataplus(_M_local_data()) {}
   basic_string(const basic_string &) : _M_dataplus(0) {}
   size_type size() { return _M_string_length; }
   char *data() const {}

Reply via email to