http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53838

             Bug #: 53838
           Summary: _GLIBCXX_DEBUG and empty ostringstream
    Classification: Unclassified
           Product: gcc
           Version: 4.7.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: akim.demai...@gmail.com


Hi,

The following program fails on Mac OS X with both 4.7 and 4.8.


$ uname -a
Darwin erebus.lrde.epita.fr 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr  9
19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64

$ g++-mp-4.7 --version
g++-mp-4.7 (MacPorts gcc47 4.7.1_1) 4.7.1
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++-mp-4.8 --version
g++-mp-4.8 (MacPorts gcc48 4.8-20120701_0) 4.8.0 20120701 (experimental)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ cat simpleaut.cc
# define _GLIBCXX_DEBUG 1
# include <sstream>

int main()
{
  std::ostringstream s;
  s.str();
}

$ g++-mp-4.8 tests/unit/simpleaut.cc
$ ./a.out
a.out(28056) malloc: *** error for object 0x10a5f2340: pointer being freed was
not allocated
*** set a breakpoint in malloc_error_break to debug
zsh: abort      ./a.out


(gdb) bt
#0  0x00007fff89bf582a in __kill ()
#1  0x00007fff89833a9c in abort ()
#2  0x00007fff8989284c in free ()
#3  0x0000000100000b86 in __gnu_cxx::new_allocator<char>::deallocate
(this=0x7fff5fbff847, 
    __p=0x1000d0340 "") at ext/new_allocator.h:102
#4  0x0000000100000b58 in std::string::_Rep::_M_destroy (this=0x1000d0340, 
    __a=@0x7fff5fbff89f) at bits/basic_string.tcc:451
#5  0x0000000100000ae6 in std::string::_Rep::_M_dispose (this=0x1000d0340, 
    __a=@0x7fff5fbff89f) at bits/basic_string.h:251
#6  0x00000001000009fd in std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::~basic_string (this=0x7fff5fbffa20) at
bits/basic_string.h:541
#7  0x0000000100000968 in main () at tests/unit/simpleaut.cc:7

Reply via email to