Yes, this looks like a bug, assuming my example below is similar to the case you are discussing. Unfortunately we're past the code-freeze for the next What-If release, so it's unclear if this can be fixed for that release ![Sad smiley [:(]](/isn/Community/en-US/emoticons/emotion-9.gif)
Note, though, that this will only be a performance issue in the next release, since the presence of the non tm_safe function will force serialization (whereas in the current release it's a correctness issue since there such functions are implicitly treated as tm_waiver, so do not force serialization).
struct ls
{
int data[80];
};
extern struct ls * p;
int foo(void)
{
__tm_atomic {
struct ls local;
*p = local;
}
return 1;
}
Jim Cownie
(Intel Performance, Analysis and Threading Lab)