// { dg-do compile } // { dg-options "-fgnu-tm" } #include class Game { public: struct BuildProject { int posX; }; std::list buildProjects; }; static Game game; static std::list::iterator> erasableBuildProjects; static void *buildProjectSyncStepConcurrently(int id, int localTeam) { __transaction_relaxed { std::list::iterator>::iterator it = erasableBuildProjects.begin(); game.buildProjects.erase( (std::list ::iterator) *it); } return 0; }