what's so bad in returning void expression from a function returning void? Not that I assert it's a great practice, but it makes the code shorter and I can't imagine where it can lead to problems. If this is indeed a bad pattern, let's implement a clang warning. http://reviews.llvm.org/D3412