Ticket Change Details
Not logged in
Overview

Artifact ID: 54439259d51f71485921f7939a8e27ffd973a43ece30599e30b439ee7f68809b
Ticket: d556d5472319117b076232810416ca2ac41b6b6f
Inconsistency in Tcl declaration of Tcl_EventuallyFree and Tcl_SetResult causes warnings when compiling.
User & Date: sysadm@prs.de 2024-07-03 16:22:20
Changes

  1. comment changed to:
    tclDecls.h comes with a new redefinition which is in effect when compiling against Tcl stubs (-DUSE_TCL_STUBS) around line 3975:
    
    #ifndef __cplusplus
    #   undef Tcl_EventuallyFree
    #   define Tcl_EventuallyFree \
               ((void (*)(void *,void *))(void *)(tclStubsPtr->tcl_EventuallyFree)) /* 132 */
    #   undef Tcl_SetResult
    #   define Tcl_SetResult \
               ((void (*)(Tcl_Interp *, char *, void *))(void *)(tclStubsPtr->tcl_SetResult)) /* 232 */
    #endif
    
    This should be disabled since Tcl_FreeProc does not match the declared prototype. I removed this setting and rebuild Tcl on Linux/Windows/macos without problems and I was able to compile extensions against the stub library.
    
    I propose to remove this questionable redefinition to avoid compiler warnings about non-matching types for TCL_STATIC, TCL_DYNAMIC and friends.
    
  2. login: "sysadm@prs.de"
  3. mimetype: "text/plain"
  4. priority changed to: "3 Low"
  5. resolution changed to: "Works For Me"