[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compiling 1.7.0 with gcc-3.3
From: |
Bruce Korb |
Subject: |
Re: Compiling 1.7.0 with gcc-3.3 |
Date: |
Mon, 19 May 2003 10:05:41 -0700 |
Rob Browning wrote:
> > eval.c:1965:
> > if (scm_stack_checking_enabled_p
> > && SCM_STACK_OVERFLOW_P ((SCM_STACKITEM *) &proc))
>
> Right I posted this to guile-devel a week or so ago. Someone posted a
> (void *) coercion fix, but I haven't had a chance to look in to it.
>
> > This could be "solved" by adding -Wno-strict-aliasing to the
> > compilation options, but that might remove better motivated warnings.
>
> I'd be happier with -fno-strict-aliasing, but I don't really want that
> either. I'd rather see if we can alter the code to avoid the warning.
The (void*) coercion explicitly tells the compiler that the memory
named ``proc'' can be referenced in aliasing-unfriendly ways.
The other mechanism is to make ``proc'' be a union of whatever it
currently is with SCM_STACKITEM, so that other references become:
proc.normal
and this reference becomes (without a cast):
&proc.stackitem
In this context, ``(uintptr_t)&proc'' seems more appropriate and
less hassle, but it's your call.