Path: utzoo!telly!attcan!dptcdc!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!vette!brooks From: brooks@vette.llnl.gov (Eugene Brooks) Newsgroups: gnu.gcc.bug Subject: Re: To volatile or not to volatile. Message-ID: <21856@lll-winken.LLNL.GOV> Date: 13 Mar 89 23:07:33 GMT References: <8903130045.AA21334@prep.ai.mit.edu> Sender: usenet@lll-winken.LLNL.GOV Reply-To: brooks@maddog.llnl.gov.UUCP (Eugene Brooks) Distribution: gnu Organization: Lawrence Livermore National Laboratory Lines: 20 In article <8903130045.AA21334@prep.ai.mit.edu> cire@CISCO.COM (cire|eric) writes a description of a problem involving a reference to a volatile int which is cast to an unsigned char. I hope that the intent of the ANSI volatile usage is that the int gets picked up as an int and then is cast to a unsigned char by truncation. A volatile int is a volatile int, not a place to pick up a volatile char! Does anyone know what the standard really means in the area? I would hope, in addition, that the volatile attributes of a reference are available (in GCC) to the back end at the machine description level. On shared memory multiprocessor systems which use explicitly managed caches one has to use an alternate load instruction to guarrantee a cache miss for the reference. Does anyone know if the volatile nature of the reference is available to the back end pattern matching mechanism for code generation? If it is not, does anyone know how much trouble it would be to make it available if one were willing to do the hacking? Is the news software incompatible with your mailer too? brooks@maddog.llnl.gov, brooks@maddog.uucp, uunet!maddog.llnl.gov!brooks