[cfe-users] Fwd: Warnings for implicit constructors and wrong usage of auto

Andrea Arteaga via cfe-users cfe-users at lists.llvm.org
Tue May 15 13:15:22 PDT 2018

Dear all,
Recently, my team suffered from a bug due to a double bad usage of C++.

We have a function returning a reference to an object:

    Object& GetObject();

Sometimes we use this function like this:

    auto obj = GetObject();

This triggers a copy of the object, which we really don't mean. The two
problems are:
1. Object does not delete the copy constructor, nor does it declare one. We
have a policy of never using implicitly-declared constructors, we either
use `=delete` or `=default`. Nevertheless we missed this class.
2. A reference is demoted to a rvalue due to the usage of `auto` instead of

We would like clang to issue warnings in these two cases. The latter case
does not really seem easy to warn about, but the former looks

Does clang offer such warnings?

Andrea Arteaga
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20180515/32a4f49d/attachment.html>

More information about the cfe-users mailing list