nsajko - 2020-11-24

Hello,
In the header tools/MultithreadedTestManager.h, a member function called retire has volatile return type.

I guess the intention was to prevent some compiler optimization? Whatever the intention was, it's not being served by having a volatile return value: that construction in the type signature has no meaning, i.e., the semantics are the same as if the volatile keyword was omitted. I.e., the compiler just ignores it.

So you probably have a bug there somewhere.

Also, AFAIK C++20 disallows having volatile in function type signatures.