On Tue, Mar 22, 2016 at 10:50 AM, Justin Bogner via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> Author: bogner > Date: Tue Mar 22 12:50:05 2016 > New Revision: 264071 > > URL: http://llvm.org/viewvc/llvm-project?rev=264071&view=rev > Log: > StaticAnalyzer: Avoid an unintentional copy > Just to be clear - it sounds like a copy happens here regardless. It's just best to be explicit so readers aren't confused about that. (sounds like the iterator produces results by value (probably non-standard for an iterator to do that, but probably not uncommon) & so taking a reference to it does reference lifetime extension, etc) Now we're being explicit aobut the pointer being copied, rather than implying that we refer to a pointer kept inside the sequence/container. > > The range here isn't over references, so using `auto &` here incites a > copy. Switching to `auto *` would do, but we might as well list an > explicit type for clarity. > > Found by -Wrange-loop-analysis. > > Modified: > cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp > > Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp?rev=264071&r1=264070&r2=264071&view=diff > > ============================================================================== > --- cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp (original) > +++ cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp Tue Mar 22 > 12:50:05 2016 > @@ -168,7 +168,7 @@ public: > const ASTRecordLayout &RL) { > CharUnits PaddingSum; > CharUnits Offset = > ASTContext.toCharUnitsFromBits(RL.getFieldOffset(0)); > - for (const auto &FD : RD->fields()) { > + for (const FieldDecl *FD : RD->fields()) { > // This checker only cares about the padded size of the > // field, and not the data size. If the field is a record > // with tail padding, then we won't put that number in our > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits