diff options
author | Bernard Normier <bernard@zeroc.com> | 2019-08-02 19:25:38 -0500 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2019-08-02 19:25:38 -0500 |
commit | b68f3b78c73b30e0860781e43cd30cece778360a (patch) | |
tree | 86d07d375e9f55c34bf68079ebfff7a389726603 /cpp/src/IceSSL/Util.cpp | |
parent | Fixes for source build testing on ppc (diff) | |
download | ice-b68f3b78c73b30e0860781e43cd30cece778360a.tar.bz2 ice-b68f3b78c73b30e0860781e43cd30cece778360a.tar.xz ice-b68f3b78c73b30e0860781e43cd30cece778360a.zip |
Better work-around for xlC visibility bug
Diffstat (limited to 'cpp/src/IceSSL/Util.cpp')
-rwxr-xr-x | cpp/src/IceSSL/Util.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/cpp/src/IceSSL/Util.cpp b/cpp/src/IceSSL/Util.cpp index b0216df5bc7..940c5e1449c 100755 --- a/cpp/src/IceSSL/Util.cpp +++ b/cpp/src/IceSSL/Util.cpp @@ -20,6 +20,12 @@ #include <fstream> +#ifdef __IBMCPP__ +// Work-around for xlC visibility bug +// See "ifstream::tellg visibility error" thread on IBM xlC forum +extern template class std::fpos<char*>; +#endif + using namespace std; using namespace Ice; using namespace IceInternal; @@ -118,12 +124,7 @@ IceSSL::readFile(const string& file, vector<char>& buffer) } is.seekg(0, is.end); -#ifdef __IBMCPP__ - // xlC bug. See src/Ice/LoggerI.cpp - buffer.resize(static_cast<size_t>(is.rdbuf()->pubseekoff(0, is.cur, is.in))); -#else buffer.resize(static_cast<size_t>(is.tellg())); -#endif is.seekg(0, is.beg); if(!buffer.empty()) |