[Bug libstdc++/123100] New: std::ostringstream:str() (r-value version) returns garbage
terra at gnome dot org
gcc-bugzilla@gcc.gnu.org
Thu Dec 11 23:29:59 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123100
Bug ID: 123100
Summary: std::ostringstream:str() (r-value version) returns
garbage
Product: gcc
Version: 15.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: terra at gnome dot org
Target Milestone: ---
https://godbolt.org/z/zPssxv67s
The code below should, as I understand it, print "Hello" three times, possibly
followed by 95 \0 characters each time. However, the third times it prints
garbage for me.
It's the combination of the pubsetbuf call and the r-value call to str() that
triggers this for me.
#include <sstream>
#include <iostream>
int
main()
{
std::ostringstream os;
char buf[100] = {};
os.rdbuf()->pubsetbuf(buf, sizeof buf);
os << "Hello";
std::cerr << os.str() << std::endl;
std::cerr << os.view() << std::endl;
std::cerr << std::move(os).str() << std::endl;
return 0;
}
More information about the Gcc-bugs
mailing list