// file cpp2011-7-6-4-tua.cpp /* Translation unit A. */ #include using namespace std; struct foo { int* a; int* b; }; std::atomic foo_head[10]; int foo_array[10][10]; [[carries_dependency]] struct foo* f(int i) { return foo_head[i].load(memory_order_consume); } [[carries_dependency]] int g(int* x, int* y) { return kill_dependency(foo_array[*x][*y]); }