ksb@j.cc.purdue.edu (Kevin Braunsdorf) (04/10/88)
-------
All the members of this union should be tagged as being volatile.
union {
int oi;
char oc;
} u;
int *pi;
pi = & u.oi; /* should be a comment || warning */
You see why they cannot be ordinary in the union?
Another case:
union {
noalias int ei; /* should be a comment || warning */
char oops;
} u2;
the int is not exclusive in the union, it cannot be.
Do we all agree that a volatile is needed here (in unions)?
I'll discuss this through mail with anyone who cares.
kayessbee pur-ee!ksb ksb@j.cc.purdue.edunevin1@ihlpf.ATT.COM (00704a-Liber) (04/12/88)
In article <6891@j.cc.purdue.edu> ksb@j.cc.purdue.edu.UUCP (Kevin Braunsdorf) writes: |All the members of this union should be tagged as being volatile. | | union { | int oi; | char oc; | } u; | int *pi; | | pi = & u.oi; /* should be a comment || warning */ |You see why they cannot be ordinary in the union? No. What volatile means is that something besides this program can modify this variable (such as a hardware interrupt, signal handler, etc.). -- _ __ NEVIN J. LIBER ..!ihnp4!ihlpf!nevin1 (312) 510-6194 ' ) ) "The secret compartment of my ring I fill / / _ , __o ____ with an Underdog super-energy pill." / (_</_\/ <__/ / <_ These are solely MY opinions, not AT&T's, blah blah blah