[lld] r259455 - Replace auto with the real type.
David Blaikie via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 1 18:36:34 PST 2016
On Mon, Feb 1, 2016 at 6:29 PM, Rui Ueyama via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: ruiu
> Date: Mon Feb 1 20:29:03 2016
> New Revision: 259455
>
> URL: http://llvm.org/viewvc/llvm-project?rev=259455&view=rev
> Log:
> Replace auto with the real type.
>
> Modified:
> lld/trunk/ELF/OutputSections.cpp
>
> Modified: lld/trunk/ELF/OutputSections.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.cpp?rev=259455&r1=259454&r2=259455&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/OutputSections.cpp (original)
> +++ lld/trunk/ELF/OutputSections.cpp Mon Feb 1 20:29:03 2016
> @@ -144,7 +144,7 @@ template <class ELFT> void GotSection<EL
>
> template <class ELFT> void GotSection<ELFT>::writeTo(uint8_t *Buf) {
> Target->writeGotHeader(Buf);
> - for (const auto &L : MipsLocalGotPos) {
> + for (std::pair<uintX_t, size_t> &L : MipsLocalGotPos) {
>
This is probably accidentally causing a copy, because the value type of a
map is usually std::pair<const K, V> - so this sort of for loop introduces
an implicit conversion and then causes local reference extension to occur
(Clang has a warning for this - so I hope this is triggering a warning)
This is one of the reasons auto is particularly encouraged in places like
this - to avoid the possibility of mismatching with the type (though
Clang's warning makes this a less risky proposition)
> uint8_t *Entry = Buf + L.second * sizeof(uintX_t);
> write<uintX_t, ELFT::TargetEndianness, sizeof(uintX_t)>(Entry,
> L.first);
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160201/d7edf751/attachment.html>
More information about the llvm-commits
mailing list