This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Don't you need the barrier before. This is to ensure it completed the condition test completely first before it then processed the assignment expression.
if(condition) { somebarrier(); *p = value; }
The issue is not that the store is done too late, but that a write-access is done too early.
No. The initial cause for this needless thread was that a store was moved down, out of its control region. Of course it doesn't help when people keep shifting their point of focus in such discussions. Now it already moved to fear that GCC would somehow introduce new traps. Without the people discussing about that fear even bothering to check if that really happens :-(
if(condition) {
*v = 1
}void foo(int value) {
if(condition) {
somebarrier();
*v = value;
somebarrier();
}return; }
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |