[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ddd/MString.h problems in 3.3 with Solaris C++ compiler, liberty ins
From: |
Andreas Zeller |
Subject: |
Re: ddd/MString.h problems in 3.3 with Solaris C++ compiler, liberty install problems |
Date: |
22 Feb 2001 11:04:13 +0100 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley) |
Hi!
bug-ddd@thewrittenword.com writes:
> ddd/MString.h has:
>
> public:
> // Constructors
> MString(const char *text = "",
> XmStringCharSet charset = MSTRING_DEFAULT_CHARSET):
> _mstring(text ? XmStringCreateLtoR((char *)text, charset) : 0)
> {
> assert(OK());
> }
>
> #if 0
> MString(char *text,
> XmStringCharSet charset = MSTRING_DEFAULT_CHARSET):
> _mstring(text ? XmStringCreateLtoR(text, charset) : 0)
> {
> assert(OK());
> }
> #endif
>
> The Sun C++ compiler (5.0 and 5.2) complains with:
> CC -DHAVE_CONFIG_H -I. -I. -I. -I./.. -I/opt/TWWfsw/xpm/include
> -I/usr/dt/include -I/usr/openwin/include
> -I/opt/TWWfsw/readline4/include -DNDEBUG -xs -xO2 -xtarget=generic
> -xarch=v8 -c ddd.C
> "MString.h", line 57: Error: Formal argument text of type char* in
> call to XmStringCreateLtoR(char*, char*) is being passed const char*.
>
> Why was the constructor changed? Patch below to revert. Incidentally,
> neither G++ 2.95.2 nor IRIX C++ 7.3.1m and 7.3.1.2m complain.
String constants in C++ are now of type `const char[]', so I must care
about const correctness in DDD code. The change was made to avoid
lots of warnings on compilers that already treat string constants as
read-only. For GCC, this is (still) optional; try compiling with `gcc
-Wwrite-strings'.
In this particular case, the Sun C++ compiler is wrong: the `text'
argument to XmStringCreateLtoR(char*, char*) is explicitly casted to
`char *', so I cannot see what's wrong here. If you find a way to
make both the Sun C++ compiler happy and not to generate any warnings
with `gcc -Wwrite-strings', I'll be happy to apply it.
Thanks and best wishes,
Andreas
--
Andreas Zeller Universitaet Passau
http://www.fmi.uni-passau.de/st/staff/zeller/