summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/Make.common.rules4
-rwxr-xr-xconfig/makeprops.py4
-rw-r--r--cpp/INSTALL.SOLARIS43
-rw-r--r--cpp/config/Make.rules.SunOS118
-rw-r--r--cpp/demo/Freeze/library/Scanner.cpp84
-rw-r--r--cpp/demo/Freeze/library/Scanner.l10
-rw-r--r--cpp/demo/Freeze/phonebook/Scanner.cpp84
-rw-r--r--cpp/demo/Freeze/phonebook/Scanner.l10
-rw-r--r--cpp/demo/book/evictor_filesystem/Scanner.cpp82
-rw-r--r--cpp/demo/book/evictor_filesystem/Scanner.l10
-rw-r--r--cpp/demo/book/lifecycle/Scanner.cpp82
-rw-r--r--cpp/demo/book/lifecycle/Scanner.l10
-rw-r--r--cpp/demo/book/map_filesystem/FilesystemI.cpp13
-rw-r--r--cpp/demo/book/map_filesystem/Scanner.cpp82
-rw-r--r--cpp/demo/book/map_filesystem/Scanner.l10
-rw-r--r--cpp/include/Ice/BasicStream.h6
-rw-r--r--cpp/include/Ice/IconvStringConverter.h6
-rw-r--r--cpp/include/Ice/SlicedData.h5
-rw-r--r--cpp/include/Ice/Stream.h4
-rw-r--r--cpp/include/IceUtil/AbstractMutex.h9
-rw-r--r--cpp/include/IceUtil/FileUtil.h8
-rw-r--r--cpp/src/FreezeScript/Scanner.cpp96
-rw-r--r--cpp/src/FreezeScript/Scanner.l10
-rw-r--r--cpp/src/Glacier2Lib/Makefile2
-rw-r--r--cpp/src/Ice/ImplicitContextI.cpp51
-rw-r--r--cpp/src/Ice/Network.cpp18
-rw-r--r--cpp/src/Ice/PropertyNames.cpp2
-rw-r--r--cpp/src/Ice/PropertyNames.h6
-rw-r--r--cpp/src/Ice/Selector.cpp2
-rw-r--r--cpp/src/Ice/StreamI.h8
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp4
-rw-r--r--cpp/src/IceGrid/AdminI.cpp2
-rw-r--r--cpp/src/IceGrid/AdminSessionI.cpp3
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.h13
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp7
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.h2
-rw-r--r--cpp/src/IceGrid/Scanner.cpp60
-rw-r--r--cpp/src/IceGrid/Scanner.l10
-rwxr-xr-xcpp/src/IcePatch2Lib/Util.cpp77
-rw-r--r--cpp/src/IceSSL/Certificate.cpp16
-rw-r--r--cpp/src/IceStorm/Observers.h9
-rw-r--r--cpp/src/IceStorm/Scanner.cpp60
-rw-r--r--cpp/src/IceStorm/Scanner.l10
-rw-r--r--cpp/src/IceXML/Parser.cpp17
-rwxr-xr-xcpp/src/Slice/Parser.cpp12
-rw-r--r--cpp/src/Slice/Scanner.cpp84
-rw-r--r--cpp/src/Slice/Scanner.l10
-rw-r--r--cpp/src/Slice/Util.cpp2
-rwxr-xr-xcpp/src/slice2freezej/Main.cpp6
-rw-r--r--cpp/src/slice2java/Gen.cpp15
-rw-r--r--cpp/test/Freeze/complex/Scanner.cpp52
-rw-r--r--cpp/test/Freeze/complex/Scanner.l10
-rw-r--r--cpp/test/Glacier2/ssl/Server.cpp2
-rw-r--r--cpp/test/Ice/background/Makefile3
-rw-r--r--cpp/test/Ice/exceptions/TestAMD.ice4
-rwxr-xr-xcpp/test/Ice/hash/run.py4
-rw-r--r--cpp/test/Ice/interceptor/Client.cpp2
-rw-r--r--distribution/src/thirdparty/README47
-rw-r--r--distribution/src/thirdparty/README.txt11
59 files changed, 679 insertions, 754 deletions
diff --git a/config/Make.common.rules b/config/Make.common.rules
index 3fa0a71b733..e3d3a94e431 100644
--- a/config/Make.common.rules
+++ b/config/Make.common.rules
@@ -45,6 +45,10 @@ ifeq ($(UNAME),SunOS)
lp64suffix = /sparcv9
lp64binsuffix = /sparcv9
endif
+ ifeq ($(MACHINE_TYPE),sun4v)
+ lp64suffix = /sparcv9
+ lp64binsuffix = /sparcv9
+ endif
ifeq ($(MACHINE_TYPE),i86pc)
lp64suffix = /amd64
lp64binsuffix = /amd64
diff --git a/config/makeprops.py b/config/makeprops.py
index cc47e550bf8..833739121b1 100755
--- a/config/makeprops.py
+++ b/config/makeprops.py
@@ -75,9 +75,9 @@ struct PropertyArray
const Property* properties;
const int length;
- PropertyArray(const Property* p, int len) :
+ PropertyArray(const Property* p, size_t len) :
properties(p),
- length(len)
+ length(static_cast<int>(len))
{
}
};
diff --git a/cpp/INSTALL.SOLARIS b/cpp/INSTALL.SOLARIS
index dfaf780dd8e..fdc86236fdc 100644
--- a/cpp/INSTALL.SOLARIS
+++ b/cpp/INSTALL.SOLARIS
@@ -6,24 +6,14 @@ Requirements
Operating System
----------------
-Ice is expected to build and run properly on Solaris 8, Solaris 9
-and Solaris 10 on SPARC and x86/x64. However, Ice is officially
-supported only on Solaris 10 update 5 or greater for both SPARC and
-x86/x64.
-
-You also need to have /dev/urandom installed. This is installed by
-default on Solaris 9 and Solaris 10; on Solaris 8, you need to install
-patch 112438-01.
-
+Ice is supported on:
+ - Solaris 11 for SPARC.
C++ compiler
------------
-Ice is expected to build properly with GCC 3.4 or later. However, only
-the following compilers are officially supported:
-
-- GCC 3.4.3 on x86/x64
-- GCC 4.3.2 on SPARC
+Ice is supported with:
+- Solaris Studio 12.3 (CC 5.12)
Third-party libraries
@@ -31,13 +21,11 @@ Third-party libraries
Ice has dependencies on a number of third-party libraries:
-- Berkeley DB 4.8.30
-- expat 1.95.7 or 2.0.0
-- OpenSSL 0.9.7 or later (OpenSSL 0.9.8 or later recommended)
-- bzip2 1.0.x
+- Berkeley DB 5.1.25 (from pkg.oracle.com)
+- expat 2.0.1 (from pkg.oracle.com)
+- OpenSSL 1.0.0 (from pkg.oracle.com)
+- bzip2 1.0.6 (from pkg.oracle.com)
- mcpp 2.7.2 (with patches)
-- libiconv 1.13.1 (x86/x64 only)
-- QT 4.5.3 (optional)
We recommend downloading the Ice third-party source archive from
@@ -55,17 +43,12 @@ expat http://expat.sourceforge.net
OpenSSL http://www.openssl.org
bzip2 http://sources.redhat.com/bzip2
mcpp http://mcpp.sourceforge.net
-libiconv http://www.gnu.org/software/libiconv
-QT http://qt.nokia.com
-
-GNU Make 3.80
+GNU Make 3.81
-------------
-GNU Make 3.80 is required to build Ice on Solaris. GNU make is
-distributed on the "Solaris 10 OS Companion Software DVD":
-
-http://www.sun.com/software/solaris/freeware/
+GNU Make 3.81 is required to build Ice on Solaris. It can be installed
+using pkg.oracle.com (package name: gnu-make).
======================================================================
@@ -97,9 +80,7 @@ $ gmake
This will build the Ice core libraries, services, tests and examples.
-Python is required to run the test suite:
-
- http://www.python.org/download
+Python is required to run the test suite.
After a successful build, you can run the test suite:
diff --git a/cpp/config/Make.rules.SunOS b/cpp/config/Make.rules.SunOS
index ab7fcfd86f9..ba26ecf6e7d 100644
--- a/cpp/config/Make.rules.SunOS
+++ b/cpp/config/Make.rules.SunOS
@@ -13,115 +13,57 @@
#
# If CXX is not defined anywhere, the default (from gmake) is g++.
-# If you want to build with another compiler, you can edit this line and
-# uncomment it, or define CXX=<desired-compiler> in your environment.
#
-#CXX = CC
+CXX = CC
# This variable is used to determine the machine type.
-# For SUN UltraSPARC machines: sun4u
+# For SPARC machines: sun4u and sun4v
# For x86/x64 machines: i86pc
#
-MACHINE_TYPE := $(shell uname -m)
+MACHINE_TYPE := $(shell uname -m)
ifeq ($(CXX),CC)
#
- # Sun CC
+ # Recent version of Sun CC
#
-
- #
- # Which version of CC are we using?
- #
- CCVERSION = $(filter 5.%, $(shell CC -V 2>&1))
-
- ifeq ($(CCVERSION),5.9)
- ifeq ($(LP64),yes)
- CXXARCHFLAGS += -m64
- else
- CXXARCHFLAGS += -m32
- endif
- else
- ifeq ($(MACHINE_TYPE),sun4u)
- ifeq ($(LP64),yes)
- CXXARCHFLAGS += -xarch=v9
- else
- CXXARCHFLAGS += -xarch=v8plus
- endif
- endif
-
- ifeq ($(MACHINE_TYPE),i86pc)
- ifeq ($(LP64),yes)
- CXXARCHFLAGS += -xarch=amd64
- endif
- endif
- endif
-
- ifeq ($(CCVERSION),5.3)
- FLEX_NOLINE = yes
- BISON_NOLINE = yes
- TEMPLATE_REPOSITORY = SunWS_cache
+
+ ifeq ($(LP64),yes)
+ CXXARCHFLAGS += -m64
else
- ifeq ($(CCVERSION),5.4)
- CXXWARNFLAGS = +w
- TEMPLATE_REPOSITORY = SunWS_cache
- else
- #
- # Assumes >= 5.5
- #
- # wvarhidenmem,wvarhidemem: various name hiding
- #
- CXXWARNFLAGS = +w -erroff=wvarhidenmem,wvarhidemem
- CXXSCOPEFLAGS = -xldscope=hidden
- endif
+ CXXARCHFLAGS += -m32
endif
-
+
#
- # -features=tmplife is needed to destroy temporary objects immediately
- # (as specified by ISO C++) instead of at the end of the current block.
- # This is very useful to avoid deadlocks when using Freeze Map
- # iterators.
+ # wvarhidenmem,wvarhidemem: various name hiding
+ # notemsource: Could not find source for <template name>
+
#
+ CXXWARNFLAGS = +w -errtags -erroff=wvarhidenmem,wvarhidemem,notemsource
+ CXXSCOPEFLAGS = -xldscope=hidden
- CXXFLAGS = -mt +p -features=tmplife $(CXXSCOPEFLAGS) $(CXXWARNFLAGS) $(CXXARCHFLAGS)
+ CXXFLAGS = -mt +p $(CXXSCOPEFLAGS) $(CXXWARNFLAGS) $(CXXARCHFLAGS)
ifneq ($(GENPIC),no)
- CXXFLAGS += -KPIC
+ CXXFLAGS += -xcode=pic32
endif
ifeq ($(OPTIMIZE),yes)
- CXXFLAGS += -O -DNDEBUG
+ CXXFLAGS += -O -DNDEBUG
else
- CXXFLAGS += -g
+ CXXFLAGS += -g
endif
+
+ mkshlib = $(CXX) -G $(LDFLAGS) -o $(1) -h $(2) $(3) $(4)
- #
- # C++ run-time libraries, necessary for linking some shared libraries.
- #
- CXXLIBS = -lCstd -lCrun
-
- mkshlib = $(CXX) -G $(LDFLAGS) -o $(1) -h $(2) $(3) $(4)
-
- mklib = $(CXX) -xar -o $(1) $(2)
+ mklib = $(CXX) -xar -o $(1) $(2)
ifneq ($(embedded_runpath_prefix),)
- LDPLATFORMFLAGS = -norunpath -R $(runpath_libdir):/usr/sfw/$(libsubdir) -z text $(PLATFORMLIBDIRS)
+ LDPLATFORMFLAGS = -norunpath -R $(runpath_libdir) -z text $(PLATFORMLIBDIRS)
else
- LDPLATFORMFLAGS = -norunpath -R /usr/sfw/$(libsubdir) -z text $(PLATFORMLIBDIRS)
+ LDPLATFORMFLAGS = -norunpath -z text $(PLATFORMLIBDIRS)
endif
- #
- # On SPARC, we also link with <SUNWspro>/lib or lib/v9.
- # See http://forum.java.sun.com/thread.jspa?threadID=5279267
- #
- ifeq ($(MACHINE_TYPE),sun4u)
- CCLIBDIR = $(shell whatdir CC)/../../lib
- ifeq ($(LP64),yes)
- PLATFORMLIBDIRS := -L$(CCLIBDIR)/v9
- else
- PLATFORMLIBDIRS := -L$(CCLIBDIR)
- endif
- endif
endif
ifeq ($(CXX),gcc)
@@ -169,19 +111,9 @@ BASELIBS = -lIceUtil -lpthread
LIBS = $(BZIP2_RPATH_LINK) -lIce $(BASELIBS)
ifneq ($(QT_HOME),)
- QT_FLAGS = -I$(QT_HOME)/include
- QT_LIBS = -L$(QT_HOME)/$(libsubdir) -lQtCore -lQtSql
+ QT_FLAGS = -I$(QT_HOME)/include
+ QT_LIBS = -L$(QT_HOME)/$(libsubdir) -lQtCore -lQtSql
endif
ICEUTIL_OS_LIBS = -lpthread -lrt
ICE_OS_LIBS = -ldl -lsocket
-
-ifeq ($(MACHINE_TYPE),sun4u)
- lp64suffix = /sparcv9
- lp64binsuffix = /sparcv9
-endif
-ifeq ($(MACHINE_TYPE),i86pc)
- lp64suffix = /amd64
- lp64binsuffix = /amd64
-endif
-
diff --git a/cpp/demo/Freeze/library/Scanner.cpp b/cpp/demo/Freeze/library/Scanner.cpp
index 1b215e134d4..38012540f72 100644
--- a/cpp/demo/Freeze/library/Scanner.cpp
+++ b/cpp/demo/Freeze/library/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -544,9 +535,19 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
-#line 549 "lex.yy.c"
+#line 550 "lex.yy.c"
#define INITIAL 0
@@ -627,12 +628,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -640,7 +636,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -651,7 +647,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -733,10 +729,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 48 "Scanner.l"
+#line 58 "Scanner.l"
-#line 739 "lex.yy.c"
+#line 735 "lex.yy.c"
if ( !(yy_init) )
{
@@ -821,7 +817,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 50 "Scanner.l"
+#line 60 "Scanner.l"
{
// C++-style comment
int c;
@@ -834,7 +830,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 60 "Scanner.l"
+#line 70 "Scanner.l"
{
// C-style comment
while(true)
@@ -862,84 +858,84 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 85 "Scanner.l"
+#line 95 "Scanner.l"
{
return TOK_HELP;
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 89 "Scanner.l"
+#line 99 "Scanner.l"
{
return TOK_EXIT;
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 93 "Scanner.l"
+#line 103 "Scanner.l"
{
return TOK_ADD_BOOK;
}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 97 "Scanner.l"
+#line 107 "Scanner.l"
{
return TOK_FIND_ISBN;
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 101 "Scanner.l"
+#line 111 "Scanner.l"
{
return TOK_FIND_AUTHORS;
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 105 "Scanner.l"
+#line 115 "Scanner.l"
{
return TOK_NEXT_FOUND_BOOK;
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 109 "Scanner.l"
+#line 119 "Scanner.l"
{
return TOK_PRINT_CURRENT;
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 113 "Scanner.l"
+#line 123 "Scanner.l"
{
return TOK_RENT_BOOK;
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 117 "Scanner.l"
+#line 127 "Scanner.l"
{
return TOK_RETURN_BOOK;
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 121 "Scanner.l"
+#line 131 "Scanner.l"
{
return TOK_REMOVE_CURRENT;
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
return TOK_SET_EVICTOR_SIZE;
}
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 129 "Scanner.l"
+#line 139 "Scanner.l"
{
return TOK_SHUTDOWN;
}
@@ -947,7 +943,7 @@ YY_RULE_SETUP
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 133 "Scanner.l"
+#line 143 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -962,14 +958,14 @@ YY_RULE_SETUP
case 16:
/* rule 16 can match eol */
YY_RULE_SETUP
-#line 144 "Scanner.l"
+#line 154 "Scanner.l"
{
return ';';
}
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 148 "Scanner.l"
+#line 158 "Scanner.l"
{
// "..."-type strings
string s;
@@ -1046,7 +1042,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 222 "Scanner.l"
+#line 232 "Scanner.l"
{
// '...'-type strings
string s;
@@ -1074,7 +1070,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 247 "Scanner.l"
+#line 257 "Scanner.l"
{
// Simple strings
string s;
@@ -1101,10 +1097,10 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 271 "Scanner.l"
+#line 281 "Scanner.l"
ECHO;
YY_BREAK
-#line 1107 "lex.yy.c"
+#line 1103 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1858,8 +1854,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2098,7 +2094,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 271 "Scanner.l"
+#line 281 "Scanner.l"
diff --git a/cpp/demo/Freeze/library/Scanner.l b/cpp/demo/Freeze/library/Scanner.l
index 8494112f22d..b44fc68d227 100644
--- a/cpp/demo/Freeze/library/Scanner.l
+++ b/cpp/demo/Freeze/library/Scanner.l
@@ -35,6 +35,16 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
%}
diff --git a/cpp/demo/Freeze/phonebook/Scanner.cpp b/cpp/demo/Freeze/phonebook/Scanner.cpp
index 852d8f9f795..a0f41f1a814 100644
--- a/cpp/demo/Freeze/phonebook/Scanner.cpp
+++ b/cpp/demo/Freeze/phonebook/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -544,9 +535,19 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
-#line 549 "lex.yy.c"
+#line 550 "lex.yy.c"
#define INITIAL 0
@@ -627,12 +628,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -640,7 +636,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -651,7 +647,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -733,10 +729,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 48 "Scanner.l"
+#line 58 "Scanner.l"
-#line 739 "lex.yy.c"
+#line 735 "lex.yy.c"
if ( !(yy_init) )
{
@@ -821,7 +817,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 50 "Scanner.l"
+#line 60 "Scanner.l"
{
// C++-style comment
int c;
@@ -834,7 +830,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 60 "Scanner.l"
+#line 70 "Scanner.l"
{
// C-style comment
while(true)
@@ -862,84 +858,84 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 85 "Scanner.l"
+#line 95 "Scanner.l"
{
return TOK_HELP;
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 89 "Scanner.l"
+#line 99 "Scanner.l"
{
return TOK_EXIT;
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 93 "Scanner.l"
+#line 103 "Scanner.l"
{
return TOK_ADD_CONTACTS;
}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 97 "Scanner.l"
+#line 107 "Scanner.l"
{
return TOK_FIND_CONTACTS;
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 101 "Scanner.l"
+#line 111 "Scanner.l"
{
return TOK_NEXT_FOUND_CONTACT;
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 105 "Scanner.l"
+#line 115 "Scanner.l"
{
return TOK_PRINT_CURRENT;
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 109 "Scanner.l"
+#line 119 "Scanner.l"
{
return TOK_SET_CURRENT_NAME;
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 113 "Scanner.l"
+#line 123 "Scanner.l"
{
return TOK_SET_CURRENT_ADDRESS;
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 117 "Scanner.l"
+#line 127 "Scanner.l"
{
return TOK_SET_CURRENT_PHONE;
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 121 "Scanner.l"
+#line 131 "Scanner.l"
{
return TOK_REMOVE_CURRENT;
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
return TOK_SET_EVICTOR_SIZE;
}
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 129 "Scanner.l"
+#line 139 "Scanner.l"
{
return TOK_SHUTDOWN;
}
@@ -947,7 +943,7 @@ YY_RULE_SETUP
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 133 "Scanner.l"
+#line 143 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -962,14 +958,14 @@ YY_RULE_SETUP
case 16:
/* rule 16 can match eol */
YY_RULE_SETUP
-#line 144 "Scanner.l"
+#line 154 "Scanner.l"
{
return ';';
}
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 148 "Scanner.l"
+#line 158 "Scanner.l"
{
// "..."-type strings
string s;
@@ -1046,7 +1042,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 222 "Scanner.l"
+#line 232 "Scanner.l"
{
// '...'-type strings
string s;
@@ -1074,7 +1070,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 247 "Scanner.l"
+#line 257 "Scanner.l"
{
// Simple strings
string s;
@@ -1101,10 +1097,10 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 271 "Scanner.l"
+#line 281 "Scanner.l"
ECHO;
YY_BREAK
-#line 1107 "lex.yy.c"
+#line 1103 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1858,8 +1854,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2098,7 +2094,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 271 "Scanner.l"
+#line 281 "Scanner.l"
diff --git a/cpp/demo/Freeze/phonebook/Scanner.l b/cpp/demo/Freeze/phonebook/Scanner.l
index 02b0a4d0e44..734f2a0f374 100644
--- a/cpp/demo/Freeze/phonebook/Scanner.l
+++ b/cpp/demo/Freeze/phonebook/Scanner.l
@@ -35,6 +35,16 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
%}
diff --git a/cpp/demo/book/evictor_filesystem/Scanner.cpp b/cpp/demo/book/evictor_filesystem/Scanner.cpp
index bc4b1c7f7a3..9920e412452 100644
--- a/cpp/demo/book/evictor_filesystem/Scanner.cpp
+++ b/cpp/demo/book/evictor_filesystem/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -532,9 +523,19 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
-#line 537 "lex.yy.c"
+#line 538 "lex.yy.c"
#define INITIAL 0
@@ -615,12 +616,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -628,7 +624,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -639,7 +635,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -721,10 +717,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 48 "Scanner.l"
+#line 58 "Scanner.l"
-#line 727 "lex.yy.c"
+#line 723 "lex.yy.c"
if ( !(yy_init) )
{
@@ -809,7 +805,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 50 "Scanner.l"
+#line 60 "Scanner.l"
{
// C++-style comment
int c;
@@ -822,7 +818,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 60 "Scanner.l"
+#line 70 "Scanner.l"
{
// C-style comment
while(true)
@@ -850,77 +846,77 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 85 "Scanner.l"
+#line 95 "Scanner.l"
{
return TOK_HELP;
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 89 "Scanner.l"
+#line 99 "Scanner.l"
{
return TOK_EXIT;
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 93 "Scanner.l"
+#line 103 "Scanner.l"
{
return TOK_LIST;
}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 97 "Scanner.l"
+#line 107 "Scanner.l"
{
return TOK_LIST_RECURSIVE;
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 101 "Scanner.l"
+#line 111 "Scanner.l"
{
return TOK_CREATE_FILE;
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 105 "Scanner.l"
+#line 115 "Scanner.l"
{
return TOK_CREATE_DIR;
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 109 "Scanner.l"
+#line 119 "Scanner.l"
{
return TOK_PWD;
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 113 "Scanner.l"
+#line 123 "Scanner.l"
{
return TOK_CD;
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 117 "Scanner.l"
+#line 127 "Scanner.l"
{
return TOK_CAT;
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 121 "Scanner.l"
+#line 131 "Scanner.l"
{
return TOK_WRITE;
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
return TOK_RM;
}
@@ -928,7 +924,7 @@ YY_RULE_SETUP
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 129 "Scanner.l"
+#line 139 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -943,14 +939,14 @@ YY_RULE_SETUP
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 140 "Scanner.l"
+#line 150 "Scanner.l"
{
return ';';
}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 144 "Scanner.l"
+#line 154 "Scanner.l"
{
// "..."-type strings
string s;
@@ -1027,7 +1023,7 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 218 "Scanner.l"
+#line 228 "Scanner.l"
{
// '...'-type strings
string s;
@@ -1055,7 +1051,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 243 "Scanner.l"
+#line 253 "Scanner.l"
{
// Simple strings
string s;
@@ -1082,10 +1078,10 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 267 "Scanner.l"
+#line 277 "Scanner.l"
ECHO;
YY_BREAK
-#line 1088 "lex.yy.c"
+#line 1084 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1839,8 +1835,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2079,7 +2075,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 267 "Scanner.l"
+#line 277 "Scanner.l"
diff --git a/cpp/demo/book/evictor_filesystem/Scanner.l b/cpp/demo/book/evictor_filesystem/Scanner.l
index 611903c29ef..d6e25e49ed6 100644
--- a/cpp/demo/book/evictor_filesystem/Scanner.l
+++ b/cpp/demo/book/evictor_filesystem/Scanner.l
@@ -35,6 +35,16 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
%}
diff --git a/cpp/demo/book/lifecycle/Scanner.cpp b/cpp/demo/book/lifecycle/Scanner.cpp
index bc4b1c7f7a3..9920e412452 100644
--- a/cpp/demo/book/lifecycle/Scanner.cpp
+++ b/cpp/demo/book/lifecycle/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -532,9 +523,19 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
-#line 537 "lex.yy.c"
+#line 538 "lex.yy.c"
#define INITIAL 0
@@ -615,12 +616,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -628,7 +624,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -639,7 +635,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -721,10 +717,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 48 "Scanner.l"
+#line 58 "Scanner.l"
-#line 727 "lex.yy.c"
+#line 723 "lex.yy.c"
if ( !(yy_init) )
{
@@ -809,7 +805,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 50 "Scanner.l"
+#line 60 "Scanner.l"
{
// C++-style comment
int c;
@@ -822,7 +818,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 60 "Scanner.l"
+#line 70 "Scanner.l"
{
// C-style comment
while(true)
@@ -850,77 +846,77 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 85 "Scanner.l"
+#line 95 "Scanner.l"
{
return TOK_HELP;
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 89 "Scanner.l"
+#line 99 "Scanner.l"
{
return TOK_EXIT;
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 93 "Scanner.l"
+#line 103 "Scanner.l"
{
return TOK_LIST;
}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 97 "Scanner.l"
+#line 107 "Scanner.l"
{
return TOK_LIST_RECURSIVE;
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 101 "Scanner.l"
+#line 111 "Scanner.l"
{
return TOK_CREATE_FILE;
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 105 "Scanner.l"
+#line 115 "Scanner.l"
{
return TOK_CREATE_DIR;
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 109 "Scanner.l"
+#line 119 "Scanner.l"
{
return TOK_PWD;
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 113 "Scanner.l"
+#line 123 "Scanner.l"
{
return TOK_CD;
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 117 "Scanner.l"
+#line 127 "Scanner.l"
{
return TOK_CAT;
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 121 "Scanner.l"
+#line 131 "Scanner.l"
{
return TOK_WRITE;
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
return TOK_RM;
}
@@ -928,7 +924,7 @@ YY_RULE_SETUP
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 129 "Scanner.l"
+#line 139 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -943,14 +939,14 @@ YY_RULE_SETUP
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 140 "Scanner.l"
+#line 150 "Scanner.l"
{
return ';';
}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 144 "Scanner.l"
+#line 154 "Scanner.l"
{
// "..."-type strings
string s;
@@ -1027,7 +1023,7 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 218 "Scanner.l"
+#line 228 "Scanner.l"
{
// '...'-type strings
string s;
@@ -1055,7 +1051,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 243 "Scanner.l"
+#line 253 "Scanner.l"
{
// Simple strings
string s;
@@ -1082,10 +1078,10 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 267 "Scanner.l"
+#line 277 "Scanner.l"
ECHO;
YY_BREAK
-#line 1088 "lex.yy.c"
+#line 1084 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1839,8 +1835,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2079,7 +2075,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 267 "Scanner.l"
+#line 277 "Scanner.l"
diff --git a/cpp/demo/book/lifecycle/Scanner.l b/cpp/demo/book/lifecycle/Scanner.l
index 611903c29ef..d6e25e49ed6 100644
--- a/cpp/demo/book/lifecycle/Scanner.l
+++ b/cpp/demo/book/lifecycle/Scanner.l
@@ -35,6 +35,16 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
%}
diff --git a/cpp/demo/book/map_filesystem/FilesystemI.cpp b/cpp/demo/book/map_filesystem/FilesystemI.cpp
index e7793be6ef8..aa582643a04 100644
--- a/cpp/demo/book/map_filesystem/FilesystemI.cpp
+++ b/cpp/demo/book/map_filesystem/FilesystemI.cpp
@@ -193,7 +193,11 @@ DirectoryI::DirectoryI(const Ice::CommunicatorPtr& communicator, const string& e
{
DirectoryEntry d;
d.name = "/";
+#ifdef __SUNPRO_CC
+ dirDB.put(IdentityDirectoryEntryMap::value_type(rootId, d));
+#else
dirDB.put(make_pair(rootId, d));
+#endif
}
break;
}
@@ -345,7 +349,11 @@ DirectoryI::createDirectory(const string& name, const Ice::Current& c)
entry.nodes.insert(make_pair(name, nd));
p.set(entry);
+#ifdef __SUNPRO_CC
+ directoryDB.put(IdentityDirectoryEntryMap::value_type(id, d));
+#else
directoryDB.put(make_pair(id, d));
+#endif
txn.commit();
@@ -407,7 +415,12 @@ DirectoryI::createFile(const string& name, const Ice::Current& c)
entry.nodes.insert(make_pair(name, nd));
p.set(entry);
+
+#ifdef __SUNPRO_CC
+ fileDB.put(IdentityFileEntryMap::value_type(id, d));
+#else
fileDB.put(make_pair(id, d));
+#endif
txn.commit();
diff --git a/cpp/demo/book/map_filesystem/Scanner.cpp b/cpp/demo/book/map_filesystem/Scanner.cpp
index bc4b1c7f7a3..9920e412452 100644
--- a/cpp/demo/book/map_filesystem/Scanner.cpp
+++ b/cpp/demo/book/map_filesystem/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -532,9 +523,19 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
-#line 537 "lex.yy.c"
+#line 538 "lex.yy.c"
#define INITIAL 0
@@ -615,12 +616,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -628,7 +624,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -639,7 +635,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -721,10 +717,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 48 "Scanner.l"
+#line 58 "Scanner.l"
-#line 727 "lex.yy.c"
+#line 723 "lex.yy.c"
if ( !(yy_init) )
{
@@ -809,7 +805,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 50 "Scanner.l"
+#line 60 "Scanner.l"
{
// C++-style comment
int c;
@@ -822,7 +818,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 60 "Scanner.l"
+#line 70 "Scanner.l"
{
// C-style comment
while(true)
@@ -850,77 +846,77 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 85 "Scanner.l"
+#line 95 "Scanner.l"
{
return TOK_HELP;
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 89 "Scanner.l"
+#line 99 "Scanner.l"
{
return TOK_EXIT;
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 93 "Scanner.l"
+#line 103 "Scanner.l"
{
return TOK_LIST;
}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 97 "Scanner.l"
+#line 107 "Scanner.l"
{
return TOK_LIST_RECURSIVE;
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 101 "Scanner.l"
+#line 111 "Scanner.l"
{
return TOK_CREATE_FILE;
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 105 "Scanner.l"
+#line 115 "Scanner.l"
{
return TOK_CREATE_DIR;
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 109 "Scanner.l"
+#line 119 "Scanner.l"
{
return TOK_PWD;
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 113 "Scanner.l"
+#line 123 "Scanner.l"
{
return TOK_CD;
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 117 "Scanner.l"
+#line 127 "Scanner.l"
{
return TOK_CAT;
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 121 "Scanner.l"
+#line 131 "Scanner.l"
{
return TOK_WRITE;
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
return TOK_RM;
}
@@ -928,7 +924,7 @@ YY_RULE_SETUP
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 129 "Scanner.l"
+#line 139 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -943,14 +939,14 @@ YY_RULE_SETUP
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 140 "Scanner.l"
+#line 150 "Scanner.l"
{
return ';';
}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 144 "Scanner.l"
+#line 154 "Scanner.l"
{
// "..."-type strings
string s;
@@ -1027,7 +1023,7 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 218 "Scanner.l"
+#line 228 "Scanner.l"
{
// '...'-type strings
string s;
@@ -1055,7 +1051,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 243 "Scanner.l"
+#line 253 "Scanner.l"
{
// Simple strings
string s;
@@ -1082,10 +1078,10 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 267 "Scanner.l"
+#line 277 "Scanner.l"
ECHO;
YY_BREAK
-#line 1088 "lex.yy.c"
+#line 1084 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1839,8 +1835,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2079,7 +2075,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 267 "Scanner.l"
+#line 277 "Scanner.l"
diff --git a/cpp/demo/book/map_filesystem/Scanner.l b/cpp/demo/book/map_filesystem/Scanner.l
index 611903c29ef..d6e25e49ed6 100644
--- a/cpp/demo/book/map_filesystem/Scanner.l
+++ b/cpp/demo/book/map_filesystem/Scanner.l
@@ -35,6 +35,16 @@ using namespace std;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
%}
diff --git a/cpp/include/Ice/BasicStream.h b/cpp/include/Ice/BasicStream.h
index f9ab44f1049..69bfc1a2e53 100644
--- a/cpp/include/Ice/BasicStream.h
+++ b/cpp/include/Ice/BasicStream.h
@@ -891,7 +891,7 @@ private:
class WriteEncaps;
enum SliceType { NoSlice, ObjectSlice, ExceptionSlice };
- class EncapsDecoder : private ::IceUtil::noncopyable
+ class ICE_API EncapsDecoder : private ::IceUtil::noncopyable
{
public:
EncapsDecoder(BasicStream* stream, ReadEncaps* encaps, bool sliceObjects) :
@@ -962,7 +962,7 @@ private:
Ice::Int _typeIdIndex;
};
- class EncapsEncoder : private ::IceUtil::noncopyable
+ class ICE_API EncapsEncoder : private ::IceUtil::noncopyable
{
public:
EncapsEncoder(BasicStream* stream, WriteEncaps* encaps) :
@@ -1039,7 +1039,7 @@ private:
{
public:
- ReadEncaps() : decoder(0), previous(0)
+ ReadEncaps() : start(0), decoder(0), previous(0)
{
// Inlined for performance reasons.
}
diff --git a/cpp/include/Ice/IconvStringConverter.h b/cpp/include/Ice/IconvStringConverter.h
index 2ab569ebbb4..ed197218699 100644
--- a/cpp/include/Ice/IconvStringConverter.h
+++ b/cpp/include/Ice/IconvStringConverter.h
@@ -20,7 +20,7 @@
#include <langinfo.h>
#endif
-#if (defined(__APPLE__) && _LIBICONV_VERSION < 0x010B) || (defined(__sun) && !defined(_XPG6)) || defined(__FreeBSD__)
+#if (defined(__APPLE__) && _LIBICONV_VERSION < 0x010B) || defined(__FreeBSD__)
//
// See http://sourceware.org/bugzilla/show_bug.cgi?id=2962
//
@@ -243,7 +243,7 @@ IconvStringConverter<charT>::toUTF8(const charT* sourceStart, const charT* sourc
#ifdef NDEBUG
iconv(cd, 0, 0, 0, 0);
#else
- int rs = iconv(cd, 0, 0, 0, 0);
+ size_t rs = iconv(cd, 0, 0, 0, 0);
assert(rs == 0);
#endif
@@ -296,7 +296,7 @@ IconvStringConverter<charT>::fromUTF8(const Ice::Byte* sourceStart, const Ice::B
#ifdef NDEBUG
iconv(cd, 0, 0, 0, 0);
#else
- int rs = iconv(cd, 0, 0, 0, 0);
+ size_t rs = iconv(cd, 0, 0, 0, 0);
assert(rs == 0);
#endif
diff --git a/cpp/include/Ice/SlicedData.h b/cpp/include/Ice/SlicedData.h
index b056d9296c0..974cf001472 100644
--- a/cpp/include/Ice/SlicedData.h
+++ b/cpp/include/Ice/SlicedData.h
@@ -92,6 +92,11 @@ public:
virtual void __write(::IceInternal::BasicStream*) const;
virtual void __read(::IceInternal::BasicStream*);
+
+#ifdef __SUNPRO_CC
+ using Object::__write;
+ using Object::__read;
+#endif
private:
diff --git a/cpp/include/Ice/Stream.h b/cpp/include/Ice/Stream.h
index 8e4e4b61afb..ad662f490b4 100644
--- a/cpp/include/Ice/Stream.h
+++ b/cpp/include/Ice/Stream.h
@@ -431,6 +431,10 @@ public:
virtual bool __usesClasses() const;
+#ifdef __SUNPRO_CC
+ using UserException::__usesClasses;
+#endif
+
protected:
const CommunicatorPtr _communicator;
diff --git a/cpp/include/IceUtil/AbstractMutex.h b/cpp/include/IceUtil/AbstractMutex.h
index 84f992e87b5..53d525dc956 100644
--- a/cpp/include/IceUtil/AbstractMutex.h
+++ b/cpp/include/IceUtil/AbstractMutex.h
@@ -13,6 +13,10 @@
#include <IceUtil/Config.h>
#include <IceUtil/Lock.h>
+#ifdef __SUNPRO_CC
+# pragma error_messages(off,hidef)
+#endif
+
namespace IceUtil
{
@@ -112,7 +116,10 @@ public:
{}
};
-
}
+#ifdef __SUNPRO_CC
+# pragma error_messages(default,hidef)
+#endif
+
#endif
diff --git a/cpp/include/IceUtil/FileUtil.h b/cpp/include/IceUtil/FileUtil.h
index 1e76c62d8fe..df091c09cce 100644
--- a/cpp/include/IceUtil/FileUtil.h
+++ b/cpp/include/IceUtil/FileUtil.h
@@ -121,6 +121,10 @@ public:
ifstream(const std::string&, std::ios_base::openmode mode = std::ios_base::in);
void open(const std::string&, std::ios_base::openmode mode = std::ios_base::in);
+#ifdef __SUNPRO_CC
+ using std::ifstream::open;
+#endif
+
private:
// Hide const char* definitions since they shouldn't be used.
@@ -136,6 +140,10 @@ public:
ofstream(const std::string&, std::ios_base::openmode mode = std::ios_base::out);
void open(const std::string&, std::ios_base::openmode mode = std::ios_base::out);
+#ifdef __SUNPRO_CC
+ using std::ofstream::open;
+#endif
+
private:
// Hide const char* definitions since they shouldn't be used.
diff --git a/cpp/src/FreezeScript/Scanner.cpp b/cpp/src/FreezeScript/Scanner.cpp
index 6b9c34b3314..c759d4012bc 100644
--- a/cpp/src/FreezeScript/Scanner.cpp
+++ b/cpp/src/FreezeScript/Scanner.cpp
@@ -74,6 +74,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -104,8 +105,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -162,15 +161,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -563,6 +554,16 @@ char *freeze_script_text;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef freeze_script_wrap
+# undef freeze_script_wrap
+# define freeze_script_wrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
using namespace std;
using namespace FreezeScript;
@@ -581,7 +582,7 @@ StringTokPtr parseString(char);
#define YY_USER_INIT initScanner();
#define YY_INPUT(buf, result, max_size) { result = getInput(buf, max_size); }
-#line 584 "lex.yy.c"
+#line 585 "lex.yy.c"
#define INITIAL 0
@@ -662,12 +663,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -675,7 +671,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( freeze_script_text, freeze_script_leng, 1, freeze_script_out )) {} } while (0)
+#define ECHO fwrite( freeze_script_text, freeze_script_leng, 1, freeze_script_out )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -686,7 +682,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( freeze_script_in )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -768,10 +764,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 73 "Scanner.l"
+#line 83 "Scanner.l"
-#line 774 "lex.yy.c"
+#line 770 "lex.yy.c"
if ( !(yy_init) )
{
@@ -852,7 +848,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 75 "Scanner.l"
+#line 85 "Scanner.l"
{
// C++-style comment
int c;
@@ -869,7 +865,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 89 "Scanner.l"
+#line 99 "Scanner.l"
{
// C-style comment
while(true)
@@ -901,7 +897,7 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 118 "Scanner.l"
+#line 128 "Scanner.l"
{
StringTokPtr ident = new StringTok;
ident->v = freeze_script_text;
@@ -911,7 +907,7 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
StringTokPtr str = parseString('"');
*yylvalp = str;
@@ -920,7 +916,7 @@ YY_RULE_SETUP
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 131 "Scanner.l"
+#line 141 "Scanner.l"
{
StringTokPtr str = parseString('\'');
*yylvalp = str;
@@ -929,7 +925,7 @@ YY_RULE_SETUP
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 137 "Scanner.l"
+#line 147 "Scanner.l"
{
IntegerTokPtr itp = new IntegerTok;
*yylvalp = itp;
@@ -946,7 +942,7 @@ YY_RULE_SETUP
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 151 "Scanner.l"
+#line 161 "Scanner.l"
{
errno = 0;
FloatingTokPtr ftp = new FloatingTok;
@@ -978,7 +974,7 @@ YY_RULE_SETUP
case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
-#line 179 "Scanner.l"
+#line 189 "Scanner.l"
{
// Igore white-space
@@ -990,97 +986,97 @@ YY_RULE_SETUP
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 188 "Scanner.l"
+#line 198 "Scanner.l"
return TOK_LESS_THAN;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 189 "Scanner.l"
+#line 199 "Scanner.l"
return TOK_GREATER_THAN;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 190 "Scanner.l"
+#line 200 "Scanner.l"
return TOK_LESS_EQUAL;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 191 "Scanner.l"
+#line 201 "Scanner.l"
return TOK_GREATER_EQUAL;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 192 "Scanner.l"
+#line 202 "Scanner.l"
return TOK_EQUAL;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 193 "Scanner.l"
+#line 203 "Scanner.l"
return TOK_NEQ;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 194 "Scanner.l"
+#line 204 "Scanner.l"
return TOK_ADD;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 195 "Scanner.l"
+#line 205 "Scanner.l"
return TOK_SUB;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 196 "Scanner.l"
+#line 206 "Scanner.l"
return TOK_MUL;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 197 "Scanner.l"
+#line 207 "Scanner.l"
return TOK_DIV;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 198 "Scanner.l"
+#line 208 "Scanner.l"
return TOK_MOD;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 199 "Scanner.l"
+#line 209 "Scanner.l"
return TOK_LPAREN;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 200 "Scanner.l"
+#line 210 "Scanner.l"
return TOK_RPAREN;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 201 "Scanner.l"
+#line 211 "Scanner.l"
return TOK_LBRACKET;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 202 "Scanner.l"
+#line 212 "Scanner.l"
return TOK_RBRACKET;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 203 "Scanner.l"
+#line 213 "Scanner.l"
return TOK_SCOPE_DELIMITER;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 205 "Scanner.l"
+#line 215 "Scanner.l"
{
return freeze_script_text[0];
}
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 209 "Scanner.l"
+#line 219 "Scanner.l"
ECHO;
YY_BREAK
-#line 1083 "lex.yy.c"
+#line 1079 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1835,8 +1831,8 @@ YY_BUFFER_STATE freeze_script__scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to freeze_script_lex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2075,7 +2071,7 @@ void freeze_script_free (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 209 "Scanner.l"
+#line 219 "Scanner.l"
diff --git a/cpp/src/FreezeScript/Scanner.l b/cpp/src/FreezeScript/Scanner.l
index 81974e656b5..badad602828 100644
--- a/cpp/src/FreezeScript/Scanner.l
+++ b/cpp/src/FreezeScript/Scanner.l
@@ -39,6 +39,16 @@
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef freeze_script_wrap
+# undef freeze_script_wrap
+# define freeze_script_wrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
using namespace std;
using namespace FreezeScript;
diff --git a/cpp/src/Glacier2Lib/Makefile b/cpp/src/Glacier2Lib/Makefile
index cc3ab417519..7f5353822e3 100644
--- a/cpp/src/Glacier2Lib/Makefile
+++ b/cpp/src/Glacier2Lib/Makefile
@@ -37,7 +37,7 @@ SDIR = $(slicedir)/Glacier2
include $(top_srcdir)/config/Make.rules
-CPPFLAGS := -I.. $(CPPFLAGS) $(OPENSSL_FLAGS)
+CPPFLAGS := -I.. $(CPPFLAGS) $(OPENSSL_FLAGS) -DGLACIER2_API_EXPORTS
SLICE2CPPFLAGS := --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE2CPPFLAGS)
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil
diff --git a/cpp/src/Ice/ImplicitContextI.cpp b/cpp/src/Ice/ImplicitContextI.cpp
index 9da2940ff6c..86118533e67 100644
--- a/cpp/src/Ice/ImplicitContextI.cpp
+++ b/cpp/src/Ice/ImplicitContextI.cpp
@@ -55,9 +55,6 @@ public:
virtual void write(const Context&, ::IceInternal::BasicStream*) const;
virtual void combine(const Context&, Context&) const;
-
- static void threadDestructor(void*);
-
struct Slot
{
@@ -104,6 +101,9 @@ private:
#endif
}
+extern "C" void iceImplicitContextThreadDestructor(void*);
+
+
/*static*/ ImplicitContextI*
ImplicitContextI::create(const std::string& kind)
@@ -141,8 +141,7 @@ ImplicitContextI::cleanupThread()
{
if(PerThreadImplicitContext::_nextId > 0)
{
- PerThreadImplicitContext::threadDestructor(
- TlsGetValue(PerThreadImplicitContext::_key));
+ iceImplicitContextThreadDestructor(TlsGetValue(PerThreadImplicitContext::_key));
}
}
#endif
@@ -310,7 +309,7 @@ PerThreadImplicitContext::PerThreadImplicitContext()
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, GetLastError());
}
# else
- int err = pthread_key_create(&_key, &threadDestructor);
+ int err = pthread_key_create(&_key, &iceImplicitContextThreadDestructor);
if(err != 0)
{
throw IceUtil::ThreadSyscallException(__FILE__, __LINE__, err);
@@ -351,26 +350,6 @@ PerThreadImplicitContext::~PerThreadImplicitContext()
}
}
-/*static*/ void
-PerThreadImplicitContext::threadDestructor(void* v)
-{
- SlotVector* sv = static_cast<SlotVector*>(v);
- if(sv != 0)
- {
- //
- // Cleanup each slot
- //
- for(SlotVector::iterator p = sv->begin(); p != sv->end(); ++p)
- {
- delete p->context;
- }
- //
- // Then the vector
- //
- delete sv;
- }
-}
-
Context*
PerThreadImplicitContext::getThreadContext(bool allocate) const
{
@@ -635,4 +614,24 @@ PerThreadImplicitContext::combine(const Context& proxyCtx, Context& ctx) const
ctx.insert(threadCtx->begin(), threadCtx->end());
}
}
+
+extern "C" void iceImplicitContextThreadDestructor(void* v)
+{
+ PerThreadImplicitContext::SlotVector* sv = static_cast<PerThreadImplicitContext::SlotVector*>(v);
+ if(sv != 0)
+ {
+ //
+ // Cleanup each slot
+ //
+ for(PerThreadImplicitContext::SlotVector::iterator p = sv->begin(); p != sv->end(); ++p)
+ {
+ delete p->context;
+ }
+ //
+ // Then the vector
+ //
+ delete sv;
+ }
+}
+
#endif
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index 9b1094ee0dc..b49a8b6f132 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -64,10 +64,6 @@ using namespace Windows::Networking;
using namespace Windows::Networking::Sockets;
#endif
-#if defined(__sun) && !defined(__GNUC__)
-# define INADDR_NONE (in_addr_t)0xffffffff
-#endif
-
namespace
{
@@ -1129,11 +1125,11 @@ IceInternal::inetAddrToString(const Address& ss)
int size = 0;
if(ss.ss_family == AF_INET)
{
- size = sizeof(sockaddr_in);
+ size = static_cast<int>(sizeof(sockaddr_in));
}
else if(ss.ss_family == AF_INET6)
{
- size = sizeof(sockaddr_in6);
+ size = static_cast<int>(sizeof(sockaddr_in6));
}
else
{
@@ -1142,7 +1138,7 @@ IceInternal::inetAddrToString(const Address& ss)
char namebuf[1024];
namebuf[0] = '\0';
- getnameinfo(reinterpret_cast<const struct sockaddr *>(&ss), size, namebuf, sizeof(namebuf), 0, 0, NI_NUMERICHOST);
+ getnameinfo(reinterpret_cast<const struct sockaddr *>(&ss), size, namebuf, static_cast<socklen_t>(sizeof(namebuf)), 0, 0, NI_NUMERICHOST);
return string(namebuf);
#else
if(ss.host == nullptr)
@@ -1627,11 +1623,11 @@ IceInternal::doBind(SOCKET fd, const Address& addr)
int size;
if(addr.ss_family == AF_INET)
{
- size = sizeof(sockaddr_in);
+ size = static_cast<int>(sizeof(sockaddr_in));
}
else if(addr.ss_family == AF_INET6)
{
- size = sizeof(sockaddr_in6);
+ size = static_cast<int>(sizeof(sockaddr_in6));
}
else
{
@@ -1843,11 +1839,11 @@ repeatConnect:
int size;
if(addr.ss_family == AF_INET)
{
- size = sizeof(sockaddr_in);
+ size = static_cast<int>(sizeof(sockaddr_in));
}
else if(addr.ss_family == AF_INET6)
{
- size = sizeof(sockaddr_in6);
+ size = static_cast<int>(sizeof(sockaddr_in6));
}
else
{
diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp
index 9ea1b473d09..6ad286f4e01 100644
--- a/cpp/src/Ice/PropertyNames.cpp
+++ b/cpp/src/Ice/PropertyNames.cpp
@@ -8,7 +8,7 @@
// **********************************************************************
//
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Mon Apr 30 16:36:44 2012
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Sep 6 15:42:54 2012
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h
index bc0c7f946f6..3de0b8faecd 100644
--- a/cpp/src/Ice/PropertyNames.h
+++ b/cpp/src/Ice/PropertyNames.h
@@ -8,7 +8,7 @@
// **********************************************************************
//
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Mon Apr 30 16:36:44 2012
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Sep 6 15:42:54 2012
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -47,9 +47,9 @@ struct PropertyArray
const Property* properties;
const int length;
- PropertyArray(const Property* p, int len) :
+ PropertyArray(const Property* p, size_t len) :
properties(p),
- length(len)
+ length(static_cast<int>(len))
{
}
};
diff --git a/cpp/src/Ice/Selector.cpp b/cpp/src/Ice/Selector.cpp
index 1bcaed5b087..d6921c5a54d 100644
--- a/cpp/src/Ice/Selector.cpp
+++ b/cpp/src/Ice/Selector.cpp
@@ -553,7 +553,9 @@ Selector::~Selector()
void
Selector::destroy()
{
+#if !defined(ICE_USE_SELECT) && !defined(ICE_USE_POLL)
assert(_events.empty());
+#endif
}
void
diff --git a/cpp/src/Ice/StreamI.h b/cpp/src/Ice/StreamI.h
index 7c2e8546d9a..8d9bba4e977 100644
--- a/cpp/src/Ice/StreamI.h
+++ b/cpp/src/Ice/StreamI.h
@@ -88,6 +88,10 @@ public:
virtual void read(std::pair<const Float*, const Float*>&, ::IceUtil::ScopedArray<Float>&);
virtual void read(std::pair<const Double*, const Double*>&, ::IceUtil::ScopedArray<Double>&);
+#ifdef __SUNPRO_CC
+ using InputStream::read;
+#endif
+
virtual bool readOptional(Int, OptionalType);
virtual void closure(void*);
@@ -139,6 +143,10 @@ public:
virtual void write(const Float*, const Float*);
virtual void write(const Double*, const Double*);
+#ifdef __SUNPRO_CC
+ using OutputStream::write;
+#endif
+
virtual void writeOptional(Int, OptionalType);
virtual void startObject(const SlicedDataPtr&);
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp
index b1aa39ddd96..b0f26d70b8f 100644
--- a/cpp/src/Ice/UdpTransceiver.cpp
+++ b/cpp/src/Ice/UdpTransceiver.cpp
@@ -177,11 +177,11 @@ repeat:
socklen_t len = static_cast<socklen_t>(sizeof(_peerAddr));
if(_peerAddr.ss_family == AF_INET)
{
- len = sizeof(sockaddr_in);
+ len = static_cast<socklen_t>(sizeof(sockaddr_in));
}
else if(_peerAddr.ss_family == AF_INET6)
{
- len = sizeof(sockaddr_in6);
+ len = static_cast<socklen_t>(sizeof(sockaddr_in6));
}
else
{
diff --git a/cpp/src/IceGrid/AdminI.cpp b/cpp/src/IceGrid/AdminI.cpp
index 7453a93902b..f65f0a26cce 100644
--- a/cpp/src/IceGrid/AdminI.cpp
+++ b/cpp/src/IceGrid/AdminI.cpp
@@ -810,12 +810,14 @@ AdminI::getNodeProcessorSocketCount(const string& name, const Current&) const
catch(const Ice::ObjectNotExistException&)
{
throw NodeNotExistException(name);
+ return 0;
}
catch(const Ice::LocalException& ex)
{
ostringstream os;
os << ex;
throw NodeUnreachableException(name, os.str());
+ return 0;
}
}
diff --git a/cpp/src/IceGrid/AdminSessionI.cpp b/cpp/src/IceGrid/AdminSessionI.cpp
index 501af30ab80..25aeaffe85a 100644
--- a/cpp/src/IceGrid/AdminSessionI.cpp
+++ b/cpp/src/IceGrid/AdminSessionI.cpp
@@ -238,6 +238,7 @@ AdminSessionI::openServerLog(const string& id, const string& path, int nLines, c
catch(const SynchronizationException&)
{
throw DeploymentException("server is being updated");
+ return 0;
}
}
@@ -251,6 +252,7 @@ AdminSessionI::openServerStdOut(const string& id, int nLines, const Ice::Current
catch(const SynchronizationException&)
{
throw DeploymentException("server is being updated");
+ return 0;
}
}
@@ -264,6 +266,7 @@ AdminSessionI::openServerStdErr(const string& id, int nLines, const Ice::Current
catch(const SynchronizationException&)
{
throw DeploymentException("server is being updated");
+ return 0;
}
}
diff --git a/cpp/src/IceGrid/DescriptorBuilder.h b/cpp/src/IceGrid/DescriptorBuilder.h
index 8472e4bf4fd..5a0358cb936 100644
--- a/cpp/src/IceGrid/DescriptorBuilder.h
+++ b/cpp/src/IceGrid/DescriptorBuilder.h
@@ -15,6 +15,13 @@
#include <IceGrid/Descriptor.h>
#include <set>
+#ifdef __SUNPRO_CC
+//
+// We hide some init functions on purpose in classes below
+//
+# pragma error_messages(off,hidef)
+#endif
+
namespace IceGrid
{
@@ -310,6 +317,10 @@ private:
ServiceDescriptorPtr _descriptor;
};
-};
+}
+
+#ifdef __SUNPRO_CC
+# pragma error_messages(default,hidef)
+#endif
#endif
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index 67467f280f9..8c339ae8166 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -18,6 +18,13 @@ using namespace IceUtil;
using namespace IceUtilInternal;
using namespace IceGrid;
+#ifdef __SUNPRO_CC
+//
+// Disable warning about unassigned function objects
+//
+# pragma error_messages(off,unassigned)
+#endif
+
namespace IceGrid
{
diff --git a/cpp/src/IceGrid/DescriptorHelper.h b/cpp/src/IceGrid/DescriptorHelper.h
index dbc72e919c9..729731f3698 100644
--- a/cpp/src/IceGrid/DescriptorHelper.h
+++ b/cpp/src/IceGrid/DescriptorHelper.h
@@ -225,7 +225,7 @@ public:
protected:
-#if defined(__sun)
+#ifdef __SUNPRO_CC
using ServerHelper::instantiateImpl;
#endif
diff --git a/cpp/src/IceGrid/Scanner.cpp b/cpp/src/IceGrid/Scanner.cpp
index 7a5103303c3..9716be00a08 100644
--- a/cpp/src/IceGrid/Scanner.cpp
+++ b/cpp/src/IceGrid/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -507,6 +498,16 @@ using namespace IceGrid;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
namespace IceGrid
@@ -522,7 +523,7 @@ std::string parseSingleQuotedString();
}
#define YY_USER_INIT initScanner();
-#line 525 "lex.yy.c"
+#line 526 "lex.yy.c"
#define INITIAL 0
@@ -603,12 +604,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -616,7 +612,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -627,7 +623,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -709,10 +705,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 65 "Scanner.l"
+#line 75 "Scanner.l"
-#line 715 "lex.yy.c"
+#line 711 "lex.yy.c"
if ( !(yy_init) )
{
@@ -797,7 +793,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 67 "Scanner.l"
+#line 77 "Scanner.l"
{
// C++-style comment
int c;
@@ -810,7 +806,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 77 "Scanner.l"
+#line 87 "Scanner.l"
{
// C-style comment
while(true)
@@ -839,7 +835,7 @@ YY_RULE_SETUP
case 3:
/* rule 3 can match eol */
YY_RULE_SETUP
-#line 102 "Scanner.l"
+#line 112 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -854,14 +850,14 @@ YY_RULE_SETUP
case 4:
/* rule 4 can match eol */
YY_RULE_SETUP
-#line 113 "Scanner.l"
+#line 123 "Scanner.l"
{
return ';';
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 117 "Scanner.l"
+#line 127 "Scanner.l"
{
// "..."-type strings
string s = parseDoubleQuotedString();
@@ -872,7 +868,7 @@ YY_RULE_SETUP
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 125 "Scanner.l"
+#line 135 "Scanner.l"
{
// '...'-type strings
string s;
@@ -900,7 +896,7 @@ YY_RULE_SETUP
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 150 "Scanner.l"
+#line 160 "Scanner.l"
{
// Simple strings
string s;
@@ -939,10 +935,10 @@ YY_RULE_SETUP
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 186 "Scanner.l"
+#line 196 "Scanner.l"
ECHO;
YY_BREAK
-#line 945 "lex.yy.c"
+#line 941 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1696,8 +1692,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -1936,7 +1932,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 186 "Scanner.l"
+#line 196 "Scanner.l"
diff --git a/cpp/src/IceGrid/Scanner.l b/cpp/src/IceGrid/Scanner.l
index 200b4f7598d..924d074c9fc 100644
--- a/cpp/src/IceGrid/Scanner.l
+++ b/cpp/src/IceGrid/Scanner.l
@@ -38,6 +38,16 @@ using namespace IceGrid;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
namespace IceGrid
diff --git a/cpp/src/IcePatch2Lib/Util.cpp b/cpp/src/IcePatch2Lib/Util.cpp
index 7540d21864f..21ee03196ba 100755
--- a/cpp/src/IcePatch2Lib/Util.cpp
+++ b/cpp/src/IcePatch2Lib/Util.cpp
@@ -37,78 +37,6 @@
const char* IcePatch2::checksumFile = "IcePatch2.sum";
const char* IcePatch2::logFile = "IcePatch2.log";
-//
-// Solaris 9 and before doesn't have scandir() or alphasort().
-//
-#ifdef __sun
-
-extern "C" int
-ice_scandir(const char* dir, struct dirent*** namelist,
- int (*select)(const struct dirent*),
- int (*compar)(const void*, const void*))
-{
- DIR* d;
- struct dirent* entry;
- register int i = 0;
- size_t entrysize;
-
- if((d = opendir(dir)) == 0)
- {
- return -1;
- }
-
- *namelist = 0;
- while((entry = readdir(d)) != 0)
- {
- if(select == 0 || (select != 0 && (*select)(entry)))
- {
- *namelist = (struct dirent**)realloc((void*)(*namelist), (size_t)((i + 1) * sizeof(struct dirent*)));
- if(*namelist == 0)
- {
- closedir(d);
- return -1;
- }
-
- entrysize = sizeof(struct dirent) - sizeof(entry->d_name) + strlen(entry->d_name) + 1;
- (*namelist)[i] = (struct dirent*)malloc(entrysize);
- if((*namelist)[i] == 0)
- {
- closedir(d);
- return -1;
- }
- memcpy((*namelist)[i], entry, entrysize);
- ++i;
- }
- }
-
- if(closedir(d))
- {
- return -1;
- }
-
- if(i == 0)
- {
- return -1;
- }
-
- if(compar != 0)
- {
- qsort((void *)(*namelist), (size_t)i, sizeof(struct dirent *), compar);
- }
-
- return i;
-}
-
-extern "C" int
-ice_alphasort(const void* v1, const void* v2)
-{
- const struct dirent **a = (const struct dirent **)v1;
- const struct dirent **b = (const struct dirent **)v2;
- return(strcmp((*a)->d_name, (*b)->d_name));
-}
-
-#endif
-
using namespace std;
using namespace Ice;
using namespace IcePatch2;
@@ -530,11 +458,8 @@ IcePatch2::readDirectory(const string& pa)
#else
struct dirent **namelist;
-#ifdef __sun
- int n = ice_scandir(path.c_str(), &namelist, 0, ice_alphasort);
-#else
int n = scandir(path.c_str(), &namelist, 0, alphasort);
-#endif
+
if(n < 0)
{
throw "cannot read directory `" + path + "':\n" + IceUtilInternal::lastErrorToString();
diff --git a/cpp/src/IceSSL/Certificate.cpp b/cpp/src/IceSSL/Certificate.cpp
index da9e7e2c4b9..7479263eb33 100644
--- a/cpp/src/IceSSL/Certificate.cpp
+++ b/cpp/src/IceSSL/Certificate.cpp
@@ -18,6 +18,22 @@
#include <openssl/x509v3.h>
#include <openssl/pem.h>
+#ifdef __SUNPRO_CC
+
+//
+// The call to sk_GENERAL_NAME_pop_free fails to compile if we don't
+// remove the extern "C" vs non extern "C" check with the macro below:
+//
+
+extern "C" typedef void (*FreeFunc)(void*);
+
+#undef CHECKED_SK_FREE_FUNC
+#define CHECKED_SK_FREE_FUNC(type, p) \
+ (FreeFunc) (p)
+
+#endif
+
+
using namespace std;
using namespace Ice;
using namespace IceSSL;
diff --git a/cpp/src/IceStorm/Observers.h b/cpp/src/IceStorm/Observers.h
index 23e326938f8..b5bc223c77c 100644
--- a/cpp/src/IceStorm/Observers.h
+++ b/cpp/src/IceStorm/Observers.h
@@ -15,6 +15,11 @@
#include <IceStorm/Election.h>
#include <IceStorm/Replica.h>
+#ifdef __SUNPRO_CC
+# pragma error_messages(off,hidef)
+#endif
+
+
namespace IceStorm
{
class Instance;
@@ -66,4 +71,8 @@ typedef IceUtil::Handle<Observers> ObserversPtr;
}
+#ifdef __SUNPRO_CC
+# pragma error_messages(default,hidef)
+#endif
+
#endif // OBSERVERS_H
diff --git a/cpp/src/IceStorm/Scanner.cpp b/cpp/src/IceStorm/Scanner.cpp
index 7c38d13adde..e6e81e808f6 100644
--- a/cpp/src/IceStorm/Scanner.cpp
+++ b/cpp/src/IceStorm/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -507,6 +498,16 @@ using namespace IceStorm;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
namespace IceStorm
@@ -520,7 +521,7 @@ void initScanner();
}
#define YY_USER_INIT initScanner();
-#line 523 "lex.yy.c"
+#line 524 "lex.yy.c"
#define INITIAL 0
@@ -601,12 +602,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -614,7 +610,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -625,7 +621,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -707,10 +703,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 63 "Scanner.l"
+#line 73 "Scanner.l"
-#line 713 "lex.yy.c"
+#line 709 "lex.yy.c"
if ( !(yy_init) )
{
@@ -795,7 +791,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 65 "Scanner.l"
+#line 75 "Scanner.l"
{
// C++-style comment
int c;
@@ -808,7 +804,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 75 "Scanner.l"
+#line 85 "Scanner.l"
{
// C-style comment
while(true)
@@ -837,7 +833,7 @@ YY_RULE_SETUP
case 3:
/* rule 3 can match eol */
YY_RULE_SETUP
-#line 100 "Scanner.l"
+#line 110 "Scanner.l"
{
size_t len = strlen(yytext);
for(size_t i = 0; i < len; ++i)
@@ -852,14 +848,14 @@ YY_RULE_SETUP
case 4:
/* rule 4 can match eol */
YY_RULE_SETUP
-#line 111 "Scanner.l"
+#line 121 "Scanner.l"
{
return ';';
}
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 115 "Scanner.l"
+#line 125 "Scanner.l"
{
// "..."-type strings
string s;
@@ -936,7 +932,7 @@ YY_RULE_SETUP
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 189 "Scanner.l"
+#line 199 "Scanner.l"
{
// '...'-type strings
string s;
@@ -964,7 +960,7 @@ YY_RULE_SETUP
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 214 "Scanner.l"
+#line 224 "Scanner.l"
{
// Simple strings
string s;
@@ -994,10 +990,10 @@ YY_RULE_SETUP
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 241 "Scanner.l"
+#line 251 "Scanner.l"
ECHO;
YY_BREAK
-#line 1000 "lex.yy.c"
+#line 996 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1751,8 +1747,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -1991,7 +1987,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 241 "Scanner.l"
+#line 251 "Scanner.l"
diff --git a/cpp/src/IceStorm/Scanner.l b/cpp/src/IceStorm/Scanner.l
index 4051c044020..30aeb5b44b4 100644
--- a/cpp/src/IceStorm/Scanner.l
+++ b/cpp/src/IceStorm/Scanner.l
@@ -38,6 +38,16 @@ using namespace IceStorm;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
namespace IceStorm
diff --git a/cpp/src/IceXML/Parser.cpp b/cpp/src/IceXML/Parser.cpp
index d561cf70459..bdb53910031 100644
--- a/cpp/src/IceXML/Parser.cpp
+++ b/cpp/src/IceXML/Parser.cpp
@@ -323,8 +323,8 @@ startElementHandler(void* data, const XML_Char* name, const XML_Char** attr)
attributes[attr[i]] = attr[i + 1];
}
- int line = XML_GetCurrentLineNumber(cb->parser);
- int column = XML_GetCurrentColumnNumber(cb->parser);
+ int line = static_cast<int>(XML_GetCurrentLineNumber(cb->parser));
+ int column = static_cast<int>(XML_GetCurrentColumnNumber(cb->parser));
cb->handler->startElement(name, attributes, line, column);
}
@@ -332,8 +332,8 @@ static void
endElementHandler(void* data, const XML_Char* name)
{
CallbackData* cb = static_cast<CallbackData*>(data);
- int line = XML_GetCurrentLineNumber(cb->parser);
- int column = XML_GetCurrentColumnNumber(cb->parser);
+ int line = static_cast<int>(XML_GetCurrentLineNumber(cb->parser));
+ int column = static_cast<int>(XML_GetCurrentColumnNumber(cb->parser));
cb->handler->endElement(name, line, column);
}
@@ -343,8 +343,8 @@ characterDataHandler(void* data, const XML_Char* s, int len)
CallbackData* cb = static_cast<CallbackData*>(data);
string str(s, len);
- int line = XML_GetCurrentLineNumber(cb->parser);
- int column = XML_GetCurrentColumnNumber(cb->parser);
+ int line = static_cast<int>(XML_GetCurrentLineNumber(cb->parser));
+ int column = static_cast<int>(XML_GetCurrentColumnNumber(cb->parser));
cb->handler->characters(str, line, column);
}
@@ -406,8 +406,9 @@ IceXML::Parser::parse(istream& in, Handler& handler)
}
if(XML_Parse(parser, buff, static_cast<int>(in.gcount()), isFinal) != 1)
{
- handler.error(XML_ErrorString(XML_GetErrorCode(parser)), XML_GetCurrentLineNumber(parser),
- XML_GetCurrentColumnNumber(parser));
+ handler.error(XML_ErrorString(XML_GetErrorCode(parser)),
+ static_cast<int>(XML_GetCurrentLineNumber(parser)),
+ static_cast<int>(XML_GetCurrentColumnNumber(parser)));
return;
}
}
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index e7ecd451617..1ac81d36880 100755
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -2407,23 +2407,11 @@ Slice::Container::validateConstant(const string& name, const TypePtr& type, cons
if(constant)
{
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
- // Strange Sun C++ 5.3 bug.
- const IceUtil::HandleBase<SyntaxTreeBase>& hb = constant->type();
- lt = BuiltinPtr::dynamicCast(hb);
-#else
lt = BuiltinPtr::dynamicCast(constant->type());
-#endif
}
else
{
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
- // Strange Sun C++ 5.3 bug.
- const IceUtil::HandleBase<SyntaxTreeBase>& hb = valueType;
- lt = BuiltinPtr::dynamicCast(hb);
-#else
lt = BuiltinPtr::dynamicCast(valueType);
-#endif
}
if(lt)
diff --git a/cpp/src/Slice/Scanner.cpp b/cpp/src/Slice/Scanner.cpp
index 54541891c2e..87667e38132 100644
--- a/cpp/src/Slice/Scanner.cpp
+++ b/cpp/src/Slice/Scanner.cpp
@@ -74,6 +74,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -104,8 +105,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -162,15 +161,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -591,6 +582,16 @@ char *slice_text;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef slice_wrap
+# undef slice_wrap
+# define slice_wrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
using namespace std;
using namespace Slice;
@@ -612,7 +613,7 @@ int checkKeyword(string&);
-#line 615 "lex.yy.c"
+#line 616 "lex.yy.c"
#define INITIAL 0
#define BOMSCAN 1
@@ -695,12 +696,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -708,7 +704,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( slice_text, slice_leng, 1, slice_out )) {} } while (0)
+#define ECHO fwrite( slice_text, slice_leng, 1, slice_out )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -719,7 +715,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( slice_in )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -804,10 +800,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 75 "Scanner.l"
+#line 85 "Scanner.l"
-#line 810 "lex.yy.c"
+#line 806 "lex.yy.c"
if ( !(yy_init) )
{
@@ -892,7 +888,7 @@ case 1:
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up slice_text again */
YY_RULE_SETUP
-#line 77 "Scanner.l"
+#line 87 "Scanner.l"
{
if(unit->scanPosition(slice_text))
{
@@ -906,7 +902,7 @@ case 2:
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up slice_text again */
YY_RULE_SETUP
-#line 84 "Scanner.l"
+#line 94 "Scanner.l"
{
if(unit->scanPosition(slice_text))
{
@@ -919,7 +915,7 @@ case 3:
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up slice_text again */
YY_RULE_SETUP
-#line 91 "Scanner.l"
+#line 101 "Scanner.l"
{
if(unit->scanPosition(slice_text))
{
@@ -933,7 +929,7 @@ case 4:
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up slice_text again */
YY_RULE_SETUP
-#line 98 "Scanner.l"
+#line 108 "Scanner.l"
{
if(unit->scanPosition(slice_text))
{
@@ -943,7 +939,7 @@ YY_RULE_SETUP
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 105 "Scanner.l"
+#line 115 "Scanner.l"
{
// C++-style comment
BEGIN(MAINSCAN);
@@ -961,7 +957,7 @@ YY_RULE_SETUP
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 120 "Scanner.l"
+#line 130 "Scanner.l"
{
// C-style comment
BEGIN(MAINSCAN);
@@ -1005,7 +1001,7 @@ YY_RULE_SETUP
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 161 "Scanner.l"
+#line 171 "Scanner.l"
{
BEGIN(MAINSCAN);
return ICE_SCOPE_DELIMITER;
@@ -1013,7 +1009,7 @@ YY_RULE_SETUP
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 166 "Scanner.l"
+#line 176 "Scanner.l"
{
BEGIN(MAINSCAN);
return ICE_METADATA_OPEN;
@@ -1021,7 +1017,7 @@ YY_RULE_SETUP
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 171 "Scanner.l"
+#line 181 "Scanner.l"
{
BEGIN(MAINSCAN);
return ICE_METADATA_CLOSE;
@@ -1029,7 +1025,7 @@ YY_RULE_SETUP
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 176 "Scanner.l"
+#line 186 "Scanner.l"
{
BEGIN(MAINSCAN);
return ICE_GLOBAL_METADATA_OPEN;
@@ -1037,7 +1033,7 @@ YY_RULE_SETUP
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 181 "Scanner.l"
+#line 191 "Scanner.l"
{
BEGIN(MAINSCAN);
return ICE_GLOBAL_METADATA_CLOSE;
@@ -1046,7 +1042,7 @@ YY_RULE_SETUP
case 12:
/* rule 12 can match eol */
YY_RULE_SETUP
-#line 186 "Scanner.l"
+#line 196 "Scanner.l"
{
BEGIN(MAINSCAN);
StringTokPtr ident = new StringTok;
@@ -1074,7 +1070,7 @@ YY_RULE_SETUP
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 211 "Scanner.l"
+#line 221 "Scanner.l"
{
BEGIN(MAINSCAN);
StringTokPtr ident = new StringTok;
@@ -1085,7 +1081,7 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 219 "Scanner.l"
+#line 229 "Scanner.l"
{
BEGIN(MAINSCAN);
StringTokPtr str = new StringTok;
@@ -1249,7 +1245,7 @@ YY_RULE_SETUP
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 380 "Scanner.l"
+#line 390 "Scanner.l"
{
BEGIN(MAINSCAN);
IntegerTokPtr itp = new IntegerTok;
@@ -1268,7 +1264,7 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 396 "Scanner.l"
+#line 406 "Scanner.l"
{
BEGIN(MAINSCAN);
errno = 0;
@@ -1302,7 +1298,7 @@ YY_RULE_SETUP
case 17:
/* rule 17 can match eol */
YY_RULE_SETUP
-#line 426 "Scanner.l"
+#line 436 "Scanner.l"
{
// Ignore white-space
@@ -1318,7 +1314,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 439 "Scanner.l"
+#line 449 "Scanner.l"
{
// Ignore UTF-8 BOM, rule only active when parsing start of file.
@@ -1327,7 +1323,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 445 "Scanner.l"
+#line 455 "Scanner.l"
{
BEGIN(MAINSCAN);
if(slice_text[0] < 32 || slice_text[0] > 126)
@@ -1346,10 +1342,10 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 461 "Scanner.l"
+#line 471 "Scanner.l"
ECHO;
YY_BREAK
-#line 1352 "lex.yy.c"
+#line 1348 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(BOMSCAN):
case YY_STATE_EOF(MAINSCAN):
@@ -2109,8 +2105,8 @@ YY_BUFFER_STATE slice__scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to slice_lex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -2349,7 +2345,7 @@ void slice_free (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 461 "Scanner.l"
+#line 471 "Scanner.l"
diff --git a/cpp/src/Slice/Scanner.l b/cpp/src/Slice/Scanner.l
index 2363abeb847..1d981e3e567 100644
--- a/cpp/src/Slice/Scanner.l
+++ b/cpp/src/Slice/Scanner.l
@@ -37,6 +37,16 @@
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef slice_wrap
+# undef slice_wrap
+# define slice_wrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
using namespace std;
using namespace Slice;
diff --git a/cpp/src/Slice/Util.cpp b/cpp/src/Slice/Util.cpp
index c8d98fc400f..8e0fe4c8bdc 100644
--- a/cpp/src/Slice/Util.cpp
+++ b/cpp/src/Slice/Util.cpp
@@ -115,7 +115,7 @@ Slice::fullPath(const string& path)
}
char buf[PATH_MAX + 1];
- int len = readlink(subpath.c_str(), buf, sizeof(buf));
+ int len = static_cast<int>(readlink(subpath.c_str(), buf, sizeof(buf)));
if(len > 0)
{
buf[len] = '\0';
diff --git a/cpp/src/slice2freezej/Main.cpp b/cpp/src/slice2freezej/Main.cpp
index a08642d2650..ff267b46e99 100755
--- a/cpp/src/slice2freezej/Main.cpp
+++ b/cpp/src/slice2freezej/Main.cpp
@@ -100,7 +100,13 @@ public:
void generate(UnitPtr&, const Index&);
+#ifdef __SUNPRO_CC
+protected:
+ using JavaGenerator::typeToObjectString;
+#endif
+
private:
+
string typeToObjectString(const TypePtr&);
string varToObject(const TypePtr&, const string&);
string objectToVar(const TypePtr&, const string&);
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 1a9b678b6aa..1b049475ffd 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -2442,22 +2442,7 @@ Slice::Gen::TieVisitor::visitClassDefStart(const ClassDefPtr& p)
const bool hasAMD = cl->hasMetaData("amd") || (*r)->hasMetaData("amd");
const bool optionalMapping = useOptionalMapping(*r);
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC==0x550)
- //
- // Work around for Sun CC 5.5 bug #4853566
- //
- string opName;
- if(hasAMD)
- {
- opName = (*r)->name() + "_async";
- }
- else
- {
- opName = fixKwd((*r)->name());
- }
-#else
string opName = hasAMD ? (*r)->name() + "_async" : fixKwd((*r)->name());
-#endif
TypePtr ret = (*r)->returnType();
string retS = typeToString(ret, TypeModeReturn, package, (*r)->getMetaData(), true,
diff --git a/cpp/test/Freeze/complex/Scanner.cpp b/cpp/test/Freeze/complex/Scanner.cpp
index 57f18d355a4..a3f371f18bc 100644
--- a/cpp/test/Freeze/complex/Scanner.cpp
+++ b/cpp/test/Freeze/complex/Scanner.cpp
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -502,9 +493,19 @@ using namespace Ice;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
-#line 507 "lex.yy.c"
+#line 508 "lex.yy.c"
#define INITIAL 0
@@ -585,12 +586,7 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -598,7 +594,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -609,7 +605,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -691,10 +687,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 52 "Scanner.l"
+#line 62 "Scanner.l"
-#line 697 "lex.yy.c"
+#line 693 "lex.yy.c"
if ( !(yy_init) )
{
@@ -775,7 +771,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 54 "Scanner.l"
+#line 64 "Scanner.l"
{
*yylvalp = new Complex::NumberNodeI(atoi(yytext));
return TOK_NUMBER;
@@ -783,20 +779,20 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 59 "Scanner.l"
+#line 69 "Scanner.l"
/* eat whitespace */
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 61 "Scanner.l"
+#line 71 "Scanner.l"
{ return *yytext; }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 63 "Scanner.l"
+#line 73 "Scanner.l"
ECHO;
YY_BREAK
-#line 799 "lex.yy.c"
+#line 795 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1551,8 +1547,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
@@ -1791,7 +1787,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 63 "Scanner.l"
+#line 73 "Scanner.l"
diff --git a/cpp/test/Freeze/complex/Scanner.l b/cpp/test/Freeze/complex/Scanner.l
index 4b309f6a16f..4461779e8df 100644
--- a/cpp/test/Freeze/complex/Scanner.l
+++ b/cpp/test/Freeze/complex/Scanner.l
@@ -38,6 +38,16 @@ using namespace Ice;
# define YY_NO_UNISTD_H
#endif
+#ifdef __SUNPRO_CC
+# ifdef yywrap
+# undef yywrap
+# define yywrap() 1
+# endif
+# ifdef ICE_64
+# pragma error_messages(off,truncwarn)
+# endif
+#endif
+
#define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
%}
diff --git a/cpp/test/Glacier2/ssl/Server.cpp b/cpp/test/Glacier2/ssl/Server.cpp
index 8bf60e35a6c..254ad73cdde 100644
--- a/cpp/test/Glacier2/ssl/Server.cpp
+++ b/cpp/test/Glacier2/ssl/Server.cpp
@@ -99,7 +99,7 @@ public:
}
virtual void
- ice_ping(const Ice::Current& current)
+ ice_ping(const Ice::Current& current) const
{
testContext(_ssl, current.ctx);
}
diff --git a/cpp/test/Ice/background/Makefile b/cpp/test/Ice/background/Makefile
index 2e1c7f1361c..c4fc28cc07f 100644
--- a/cpp/test/Ice/background/Makefile
+++ b/cpp/test/Ice/background/Makefile
@@ -28,7 +28,8 @@ SOBJS = Configuration.o \
TestI.o \
Server.o
-TRANSPORT_OBJS = Configuration.o \
+TRANSPORT_OBJS = Test.o \
+ Configuration.o \
Connector.o \
Acceptor.o \
EndpointI.o \
diff --git a/cpp/test/Ice/exceptions/TestAMD.ice b/cpp/test/Ice/exceptions/TestAMD.ice
index 9662adb807c..f80e031a302 100644
--- a/cpp/test/Ice/exceptions/TestAMD.ice
+++ b/cpp/test/Ice/exceptions/TestAMD.ice
@@ -12,6 +12,10 @@
module Test
{
+interface Empty
+{
+};
+
interface Thrower;
exception Base {};
diff --git a/cpp/test/Ice/hash/run.py b/cpp/test/Ice/hash/run.py
index efb892821a7..9f2191bfab5 100755
--- a/cpp/test/Ice/hash/run.py
+++ b/cpp/test/Ice/hash/run.py
@@ -20,4 +20,6 @@ if len(path) == 0:
sys.path.append(os.path.join(path[0], "scripts"))
import TestUtil
-TestUtil.simpleTest()
+client = os.path.join(os.getcwd(), "client")
+
+TestUtil.simpleTest(client)
diff --git a/cpp/test/Ice/interceptor/Client.cpp b/cpp/test/Ice/interceptor/Client.cpp
index ca859d07c36..9030bb174ba 100644
--- a/cpp/test/Ice/interceptor/Client.cpp
+++ b/cpp/test/Ice/interceptor/Client.cpp
@@ -38,7 +38,7 @@ private:
};
#ifndef _WIN32
-void testAction(int)
+extern "C" void testAction(int)
{
test(false);
}
diff --git a/distribution/src/thirdparty/README b/distribution/src/thirdparty/README
index a0a3687f8d4..e066ce82605 100644
--- a/distribution/src/thirdparty/README
+++ b/distribution/src/thirdparty/README
@@ -35,9 +35,6 @@ Table of Contents
- mcpp
- expat
4. Instructions for Solaris
- - Berkeley DB
- - OpenSSL
- - expat
- mcpp
@@ -162,58 +159,18 @@ For builds with support for both i386 and x86_64 architectures, use:
If a third-party package is not listed below, there are no special
requirements for configuring or building that package.
-
-Berkeley DB
------------
-
-Berkeley DB must be configured with C++ support enabled. If you intend
-to use Ice for Java with Berkeley DB, you must also enable Java
-support:
-
- $ ../dist/configure --enable-cxx
- (plus --prefix=<dir> and/or --enable-java if you like)
-
-For 64-bit builds, use:
-
- $ export CFLAGS="-m64"
- $ export CXXFLAGS="-m64"
- $ export LDFLAGS="-m64
- $ ../dist/configure --enable-cxx
- (plus --prefix=<dir> and/or --enable-java if you like)
-
-
-OpenSSL
--------
-
-OpenSSL is included with the Solaris 10 operating system and is
-installed in /usr/sfw. If you want to use this version of OpenSSL
-with Ice, we recommend that you also install the "Solaris 10
-Encryption Kit" available from:
-
- http://www.sun.com/download/index.jsp?cat=Security&tab=3&subcat=Cryptography%20%26%20Encryption
-
-This kit is required to run the IceSSL tests successfully.
-
-
-expat
------
-
-expat is included with the Solaris 10 operating system and is
-installed in /usr/sfw.
-
-
mcpp
----
Ice requires the library version of mcpp, so configure mcpp as shown
below:
- $ ./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
+ $ ./configure CFLAGS=-xcode=pic32 --enable-mcpplib --disable-shared
(and --prefix=<dir> if you like)
For 64-bit builds, use:
- $ ./configure CFLAGS="-fPIC -m64" --enable-mcpplib --disable-shared
+ $ ./configure CFLAGS="-xcode=pic32 -m64" --enable-mcpplib --disable-shared
(and --prefix=<dir> if you like)
On 64-bit platforms, after installation it is necessary to rename the
diff --git a/distribution/src/thirdparty/README.txt b/distribution/src/thirdparty/README.txt
index 75ded20af2e..39df3d4962a 100644
--- a/distribution/src/thirdparty/README.txt
+++ b/distribution/src/thirdparty/README.txt
@@ -30,7 +30,6 @@ link below:
For more information about the third-party dependencies, please refer
to the links below:
-STLport http://www.stlport.org
Berkeley DB http://www.oracle.com/database/berkeley-db/index.html
expat http://expat.sourceforge.net
OpenSSL http://www.openssl.org
@@ -46,7 +45,6 @@ Table of Contents
- Berkeley DB
- mcpp
2. Packages
- - STLport
- Berkeley DB
- expat
- OpenSSL
@@ -126,15 +124,6 @@ directory and apply the patch as shown below:
======================================================================
-STLport
--------
-
-STLport is only required when using Visual C++ 6.0. For installation
-instructions, please refer to
-
- http://www.stlport.org/doc/install.html
-
-
Berkeley DB
-----------