summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/Util.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2019-08-02 19:25:38 -0500
committerBernard Normier <bernard@zeroc.com>2019-08-02 19:25:38 -0500
commitb68f3b78c73b30e0860781e43cd30cece778360a (patch)
tree86d07d375e9f55c34bf68079ebfff7a389726603 /cpp/src/IceSSL/Util.cpp
parentFixes for source build testing on ppc (diff)
downloadice-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-xcpp/src/IceSSL/Util.cpp11
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())