summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclNamesp.c7
-rw-r--r--generic/tclStubLib.c7
-rw-r--r--unix/tclUnixChan.c13
3 files changed, 19 insertions, 8 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index e596e70..a4c4f2e 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -21,7 +21,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclNamesp.c,v 1.35 2003/12/24 04:18:20 davygrvy Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.36 2004/03/18 18:54:58 rmax Exp $
*/
#include "tclInt.h"
@@ -3093,6 +3093,7 @@ NamespaceEvalCmd(dummy, interp, objc, objv)
{
Tcl_Namespace *namespacePtr;
CallFrame frame;
+ CallFrame *framep;
Tcl_Obj *objPtr;
char *name;
int length, result;
@@ -3130,7 +3131,9 @@ NamespaceEvalCmd(dummy, interp, objc, objv)
* the command(s).
*/
- result = Tcl_PushCallFrame(interp, (Tcl_CallFrame *) &frame,
+ /* This is needed to satisfy GCC 3.3's strict aliasing rules */
+ framep = &frame;
+ result = Tcl_PushCallFrame(interp, (Tcl_CallFrame *) framep,
namespacePtr, /*isProcCallFrame*/ 0);
if (result != TCL_OK) {
return TCL_ERROR;
diff --git a/generic/tclStubLib.c b/generic/tclStubLib.c
index c650dac..91e5cef 100644
--- a/generic/tclStubLib.c
+++ b/generic/tclStubLib.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclStubLib.c,v 1.6 2002/12/04 07:07:59 hobbs Exp $
+ * RCS: @(#) $Id: tclStubLib.c,v 1.7 2004/03/18 18:55:16 rmax Exp $
*/
/*
@@ -88,6 +88,7 @@ Tcl_InitStubs (interp, version, exact)
{
CONST char *actualVersion = NULL;
TclStubs *tmp;
+ TclStubs **tmpp;
/*
* We can't optimize this check by caching tclStubsPtr because
@@ -100,8 +101,10 @@ Tcl_InitStubs (interp, version, exact)
return NULL;
}
+ /* This is needed to satisfy GCC 3.3's strict aliasing rules */
+ tmpp = &tmp;
actualVersion = Tcl_PkgRequireEx(interp, "Tcl", version, exact,
- (ClientData *) &tmp);
+ (ClientData *) tmpp);
if (actualVersion == NULL) {
tclStubsPtr = NULL;
return NULL;
diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c
index 70a9712..4403ced 100644
--- a/unix/tclUnixChan.c
+++ b/unix/tclUnixChan.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixChan.c,v 1.46 2004/02/25 14:50:41 dkf Exp $
+ * RCS: @(#) $Id: tclUnixChan.c,v 1.47 2004/03/18 18:55:44 rmax Exp $
*/
#include "tclInt.h" /* Internal definitions for Tcl. */
@@ -3165,6 +3165,7 @@ TclUnixWaitForFile(fd, mask, timeout)
struct timeval blockTime, *timeoutPtr;
int index, bit, numFound, result = 0;
fd_mask readyMasks[3*MASK_SIZE];
+ fd_mask *maskp[3];
/* This array reflects the readable/writable
* conditions that were found to exist by the
* last call to select. */
@@ -3239,9 +3240,13 @@ TclUnixWaitForFile(fd, mask, timeout)
* Wait for the event or a timeout.
*/
- numFound = select(fd+1, (SELECT_MASK *) &readyMasks[0],
- (SELECT_MASK *) &readyMasks[MASK_SIZE],
- (SELECT_MASK *) &readyMasks[2*MASK_SIZE], timeoutPtr);
+ /* This is needed to satisfy GCC 3.3's strict aliasing rules */
+ maskp[0] = &readyMasks[0];
+ maskp[1] = &readyMasks[MASK_SIZE];
+ maskp[2] = &readyMasks[2*MASK_SIZE];
+ numFound = select(fd+1, (SELECT_MASK *) maskp[0],
+ (SELECT_MASK *) maskp[1],
+ (SELECT_MASK *) maskp[2], timeoutPtr);
if (numFound == 1) {
if (readyMasks[index] & bit) {
result |= TCL_READABLE;