Peter Dufault wrote: > On Mon, Feb 25, 2002 at 11:35:12PM -0700, M. Warner Losh wrote: > > In message: <[EMAIL PROTECTED]> > > Mike Makonnen <[EMAIL PROTECTED]> 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.
In sys/cdefs.h, we have: #define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var)) .. but bde threatened bodily harm for using it if I recall correctly. There is also __DEVOLATILE() and __DEQUALIFY() Cheers, -Peter -- Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED] "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message