volatile const structure members in C++
Steve Zook
Steve@Zook.com
Fri Aug 26 04:25:00 GMT 2005
Using m68k-elf-gcc with either revision 3.3.3 or 3.4.4, I compile the
following test program (as a C++ program) at -O2 to an object file:
struct sA { unsigned volatile const B;
unsigned volatile C;
unsigned const D;
unsigned E; };
void Function( sA & A ) { A.B; A.C; A.D; A.E; }
The object file I get looks like (edited for brevity):
.globl _Z8FunctionR2sA
.type _Z8FunctionR2sA, @function
_Z8FunctionR2sA:
link.w %a6,#0
move.l 8(%a6),%a0 | A, A
move.l 4(%a0),%d0 | <variable>.C, <variable>.C
unlk %a6
rts
I was expecting that A.B and A.C would both generate loads since they are
both volatile, and that A.D and A.E would not, but only A.C loads.
Have I misunderstood how volatile const should work, or is this a bug I
should submit?
More information about the Gcc-help
mailing list