https://bugs.kde.org/show_bug.cgi?id=373069
Bug ID: 373069
Summary: memcheck/tests/leak_cpp_interior fails with GCC 5.1+
Product: valgrind
Version: unspecified
Platform: unspecified
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: memcheck
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Memcheck's leak_cpp_interior test has purpose to test heuristics for detecting
some common cases, where the pointer is pointing in the middle of the block,
but the chunk is not lost. One of such cases is old implementation of string
that has format:
[_Rep]
* _M_length
* [basic_string<char_type>] _M_capacity
* _M_dataplus _M_refcount
* _M_p ----------------> unnamed array of char_type
New library ABI introduced in GCC 5.1 includes new implementation of
std::string. In new implementation pointer is no longer displaced from the
beginning of the chunk. This causes failing of leak_cpp_interior test.
>From GCC version 5.1.0, allocation of exceptions in libstdc++ is changed.
Before GCC version 5.1.0 emergency buffer was statically allocated. In version
5.1.0 it is swapped with object of class poll with dynamically allocated arena.
This change also causes failing of leak_cpp_interior test. Memcheck detects
dynamically allocated block of 72,704 bytes for 64bit architectures or 18,688
bytes for 32bit architectures, that is not visible when using older versions of
libstdc++.
--
You are receiving this mail because:
You are watching all bug changes.