Menu

#2593 g++ compilation warnings

obsolete: 8.4.5
closed-wont-fix
5
2004-02-07
2004-02-06
No

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)

Discussion

  • Don Porter

    Don Porter - 2004-02-07

    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. :-)

     
  • Don Porter

    Don Porter - 2004-02-07
    • labels: --> 45. Parsing and Eval
    • assigned_to: nobody --> dgp
    • status: open --> closed-wont-fix
     
  • Michael Hong

    Michael Hong - 2004-02-18

    Logged In: YES
    user_id=955134

    Thanks a lot for response.