The preprocessor directive here is misbehaving in the absence of CXXABI_HEADER i.e. it stills compiles the underlying code in the absence of abi namespace, resulting in compile time error of missing abi namespace.
If this line is replaced with #if __has_include(<cxxabi.h>) the program compiles successfully!
How to reproduce
Compile a program using Poco-1.14.0 with Poco/Types.h header but make sure cxxabi.h is not in your include path!
The preprocessor directive here is misbehaving in the absence of
CXXABI_HEADERi.e. it stills compiles the underlying code in the absence ofabinamespace, resulting in compile time error of missingabinamespace.If this line is replaced with
#if __has_include(<cxxabi.h>)the program compiles successfully!How to reproduce
Compile a program using Poco-1.14.0 with
Poco/Types.hheader but make surecxxabi.his not in your include path!