http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47409



--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-30 
11:38:30 UTC ---

struct s2 {

  volatile int x;

};



struct s2 s;



void foo (void) {

  s = s;

}



As said previously I think that volatile struct members are ill-defined.

The only way for the middle-end to see the volatileness in the above

s = s copy is if the frontend would make 's' volatile.  That is,

effectively make it



struct s2 {

  volatile int x;

};



typedef volatile struct s2 S;



S s;



as there is otherwise no way to mark 's' in s = s with TREE_THIS_VOLATILE

(it's the plain decl, which in the original testcase is not volatile).

Reply via email to