Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Feb 2002 09:41:34 -0500
From:      Peter Dufault <dufault@hda.hda.com>
To:        "M. Warner Losh" <imp@village.org>
Cc:        mike_makonnen@yahoo.com, peter@wemm.org, current@FreeBSD.ORG
Subject:   Re: HEADS UP: cvs commit: src/sys/conf kern.pre.mk (fwd)
Message-ID:  <20020226094134.A503@hda.hda.com>
In-Reply-To: <20020225.233512.13036502.imp@village.org>; from imp@village.org on Mon, Feb 25, 2002 at 11:35:12PM -0700
References:  <20020226014624.8D6A03BAC@overcee.wemm.org> <20020225.215923.28857552.imp@village.org> <1014700670.677.9.camel@blackbox.pacbell.net> <20020225.233512.13036502.imp@village.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 25, 2002 at 11:35:12PM -0700, M. Warner Losh wrote:
> In message: <1014700670.677.9.camel@blackbox.pacbell.net>
>             Mike Makonnen <mike_makonnen@yahoo.com> writes:
> : On Mon, 2002-02-25 at 20:59, M. Warner Losh wrote:
> : > I've fixed a few of the low hanging fruit, but I don't know how to get
> : > rid of warnings like:
> : > 
> : > const char *foo = "blah";
> : > char *baz = foo;
> : > 
> : > when I know they are safe.
> : 
> : Correct me if I'm wrong, but isn't the correct declaration:
> : 
> : const char foo[] = "blah";
> : char baz[] = "foo";
> 
> You miss the point.  First, there's no "" around foo.  Second, what I
> quoted was boiled down from a bunch of macros and such.  Third, the
> real example would be
> 
> volatile int conspeed;
> int *foo = &conspeed;
> 
> Where foo is only accessed before all other accesses to conspeed.

When it is too twisty to fix at the moment I use macros such as:

#define BOGUSLY_CAST_AWAY_VOLATILITY(T,P) ((T)(unsigned int)(P))

...

volatile int conspeed; int *foo =
	BOGUSLY_CAST_AWAY_VOLATILITY(int *, &conspeed);

to surpress the warnings.  You can easily redefine the macro to get
them back so together with the discouraging name you're not sweeping
things under the rug.

I don't think there is a GCC attribute to get around this differently.

Peter

PS - this is a quick example, please no one comment on the size of
unsigned int or using gcc typeof instead, etc.

--
Peter Dufault (dufault@hda.com)   Realtime development, Machine control,
HD Associates, Inc.               Fail-Safe systems, Agency approval

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020226094134.A503>