[Info-vax] LLVM, volatile and async VMS I/O and system calls

Arne Vajhøj arne at vajhoej.dk
Wed Sep 22 09:06:26 EDT 2021


On 9/22/2021 8:28 AM, Simon Clubley wrote:
> Jan-Erik's questions about ASTs in COBOL have reminded me about something
> I asked a while back.
> 
> VMS I/O and system calls are much more asynchronous than on other operating
> systems and data can appear in buffers and variables in general can be
> changed outside of the normal sequence points (such as at a function call
> boundary).
> 
> With the move to LLVM, and its different optimiser, have any examples
> appeared in VMS code for x86-64 where volatile attributes are now required
> on variable definitions where you would have got away with not using them
> before (even if technically, they should have been marked as volatile anyway) ?
> 
> Just curious if there's any places in code running on VMS x86-64 that will
> need to cleaned up to do things in the correct way that you would have
> got away with doing less correctly previously.

To state the obvious.

Correct C aka C code with defined behavior by C standard will work
on any standard compliant C compiler.

C code with implementation specific or undefined behavior is
throwing a dice.

Maybe John Reagan has some ideas about what may break, but I cannot see
VSI systematic document how Itanium to x86-64 migration will impact
C code with implementation specific or undefined behavior.

Arne





More information about the Info-vax mailing list