OS Platform: Linux 2.4.9-34smp i686
Compiler: g++ 3.2.3
This is almost the same problem as mentioned in bug
217999. It happens when calling Tcl_SetResults in C++
codes as:
Tcl_SetResult(interp, "any string", TCL_VOLATILE);
It will generate warning messages while compiled by
using g++. Seems the parameter "string" will not be
changed in this function, we might need to fix the type
to be "CONST char *" instead of "char *".
Lei
(leiyin@cadence.com)
Logged In: YES
user_id=80530
Sorry, but the Tcl interface
was CONST-ified as much as
possible for Tcl 8.4.
In particular, the second argument
of Tcl_SetResult() can't change from
type (char *) to type (CONST char *)
because when the third argument is
an actual Tcl_FreeProc, the second
argument really does have to be
a writable string to match the
Tcl_FreeProc signature.
When the third argument is TCL_VOLATILE,
you are correct that it really is safe
to pass a (CONST char *) in. Knowing
that, you can feel free to add a
const cast in those function calls to
silence the compiler warnings.
Better yet might be to just call
Tcl_SetObjResult(interp,
Tcl_NewStringObj("any string", -1));
and move into the brave world of
programming to the Tcl 8 interface. :-)
Logged In: YES
user_id=955134
Thanks a lot for response.