Date: Tue, 12 Jan 1999 09:47:47 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Eivind Eklund <eivind@FreeBSD.ORG> Cc: Mark Murray <mark@grondar.za>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/pci ide_pci.c Message-ID: <199901121747.JAA05087@apollo.backplane.com>
next in thread | raw e-mail | index | archive | help
:On Tue, Jan 12, 1999 at 03:13:35PM +0200, Mark Murray wrote:
:> On a matter of style, what is the canonical method of fixing "foo may be
:> clobbered by longjmp" warnings?
:
:Correct use of volatile.
:
:Unfortunately, volatile has the same somewhat counter-intuitive syntax
:...
:
:This is the correct way to eliminate the problem. the char*
:is the local variable - and that is what we want to protect:
: char * volatile data = volatile pointer to a char
:
:This is a more esoteric example, just to show how it works:
: const char * volatile data = char const * volatile data =
: volatile pointer to a const char.
:
:Eivind.
Alternatively, as an example of 'volatile char *data' ... then the pointer
itself would not be volatile, but the char data it is pointing to would.
E.G. if you are pointing into a memory-mapped I/O device.
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901121747.JAA05087>
