Ticket UUID: | 873897 | |||
Title: | tclUnixPipe.c HP cc pointer truncate warnings | |||
Type: | Bug | Version: | obsolete: 8.5a0 | |
Submitter: | rwurth | Created on: | 2004-01-09 17:01:43 | |
Subsystem: | 37. File System | Assigned To: | hobbs | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2007-06-27 09:20:08 | |
Resolution: | Wont Fix | Closed By: | sf-robot | |
Closed on: | 2007-06-27 02:20:08 | |||
Description: |
The source file unix/tclUnixPipe.c, when compiled with HP's ANSI C compiler with --enable-64bit produces many instances of the error: Cast truncates pointer into 32 bit integer. These occur on lines 115, 328, 434, 487, 649, 734, 736, 738, 836, 848, 956, 1016, 1064, 1105, 1109, 1115, 1119, 1151, 1155, and 1186. (In case the code changes change the line numbers, line 115 is the line: return MakeFile((int)data); in proc TclpMakeFile. All the other instances involve the GetFd macro, and every such instance of GetFd causes the warning except for 2 that are #ifdef'ed out of the compilation.) The root cause of the warings appears to be that TclFile is declared (via a typedef) to be a pointer (specifically of type (struct TclFile_ *)), but the code treats it as an int, the macros GetFd and MakeFile cast it to an int, and eventually the int result is used as an integer file descriptor to the read and write UNIX system calls. OS: (uname -a): HP-UX urkel B.11.00 U 9000/800 1552710528 unlimited-user license Config flags: MAKE=gmake CC=/usr/bin/cc ./configure \ --enable-shared \ --enable-64bit \ --prefix=/usr/local/tcl-X/tcl8.5 \ --exec-prefix=/usr/local/tcl-X/tcl8.5 Compile line: /usr/bin/cc -c -O -DTCL_DBGX= +z -I./../generic -I. +DA2.0W -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_CFGVAL_ENCODING=\"iso8859-1\" -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1 -DWORDS_BIGENDIAN=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_MODEM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TZNAME=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_ST_BLKSIZE=1 -DNO_UNION_WAIT=1 -DNO_GETTOD=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -D_XOPEN_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED=1 -DTCL_CFG_DO64BIT=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".sl\" ./../unix/tclUnixPipe.c | |||
User Comments: |
sf-robot added on 2007-06-27 09:20:08:
Logged In: YES user_id=1312539 Originator: NO This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days (the time period specified by the administrator of this Tracker). das added on 2007-06-20 12:48:39: Logged In: YES user_id=90580 Originator: NO if intptr_t/uintptr_t are available, all bogus instances of such warnings should have been taken care of by my 2006-11-13 commit adding the PTR2INT(), INT2PTR(), PTR2UINT() and UINT2PTR() macros. On the 64bit platforms I have access to (darwin, linux, but not HP-UX), I get warning-free builds for the HEAD. hobbs added on 2007-06-13 02:29:03: Logged In: YES user_id=72656 Originator: NO There are several places where pointer truncating occurs with known effect. Have any of these issues pointed to a bug? vincentdarley added on 2004-01-10 01:12:20: Logged In: YES user_id=32170 I Know almost nothing about such 64-bit +unix-specific things... If you wish to propose a patch which works for you, I'm happy to review it, else perhaps another maintainer can look at this. rwurth added on 2004-01-10 00:01:43: File Added - 72851: config.log |
Attachments:
- config.log [download] added by rwurth on 2004-01-10 00:01:43. [details]