#3086: Use POCO_IOS_INIT_HACK for Linux in combination with libc++

This commit is contained in:
Günter Obiltschnig 2021-04-12 20:15:30 +02:00
parent bfe4213f54
commit 630afde3fd

View File

@ -55,11 +55,11 @@
//
// In this scenario, std::ios::init() is called twice
// (the first time by the MyIOS constructor, the second
// time by the std::istream constructor), resulting in
// two locale objects being allocated, the pointer second
// one overwriting the pointer to the first one and thus
// time by the std::istream constructor), resulting in
// two locale objects being allocated, the pointer second
// one overwriting the pointer to the first one and thus
// causing a memory leak.
//
//
// The workaround is to call init() only once for each
// stream object - by the istream, ostream or iostream
// constructor, and not calling init() in ios-derived
@ -77,6 +77,9 @@
# define POCO_IOS_INIT_HACK 1
// QNX with Dinkumware but not GNU C++ Library
# elif defined(__QNX__) && !defined(__GLIBCPP__)
# define POCO_IOS_INIT_HACK 1
// Linux with Clang libc++
# elif defined(__linux) && defined(_LIBCPP_VERSION)
# define POCO_IOS_INIT_HACK 1
# endif
#endif