http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60695
--- Comment #3 from Roman Kononov <roman at binarylife dot net> --- Yes, it is definitely silly in some sense. But, some templated user code might become more complex with this behaviour. If gcc supports zero-sized objects it would be nice to support them fully. The implementation for this case might do the synchronization part without any data exchange.