[lld] r234865 - ELF: Fix odd initialization code.

David Blaikie dblaikie at gmail.com
Tue Apr 14 08:33:23 PDT 2015


On Mon, Apr 13, 2015 at 11:58 PM, Rui Ueyama <ruiu at google.com> wrote:
> Author: ruiu
> Date: Tue Apr 14 01:58:47 2015
> New Revision: 234865
>
> URL: http://llvm.org/viewvc/llvm-project?rev=234865&view=rev
> Log:
> ELF: Fix odd initialization code.
>
> Modified:
>     lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h?rev=234865&r1=234864&r2=234865&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h Tue Apr 14 01:58:47 2015
> @@ -41,8 +41,7 @@ public:
>    };
>
>    HexagonTargetLayout(HexagonLinkingContext &ctx)
> -      : TargetLayout<ELF32LE>(ctx),
> -        _sdataSection(new (_alloc) SDataSection(ctx)) {}
> +      : TargetLayout<ELF32LE>(ctx), _sdataSection(ctx) {}

Just as an aside, in case it's helpful, you can write the first
initializer as "TargetLayout(ctx)" (assuming you aren't deriving from
multiple different TargetLayout instantiations) (& in general,
throughout the class, you can just refer to TargetLayout (eg, beloww
in the parameter type you can write "TargetLayout::SectionOrder"
instead of "TargetLayout<ELF32LE>::SectionOrder") without the template
argument list).

>
>    /// \brief Return the section order for a input section
>    TargetLayout<ELF32LE>::SectionOrder
> @@ -75,7 +74,7 @@ public:
>                  TargetLayout<ELF32LE>::SectionOrder sectionOrder) override {
>      if ((contentType == DefinedAtom::typeDataFast) ||
>         (contentType == DefinedAtom::typeZeroFillFast))
> -      return _sdataSection;
> +      return &_sdataSection;
>      return TargetLayout<ELF32LE>::createSection(
>          name, contentType, contentPermissions, sectionOrder);
>    }
> @@ -89,7 +88,7 @@ public:
>      return TargetLayout<ELF32LE>::getSegmentType(section);
>    }
>
> -  Section<ELF32LE> *getSDataSection() const { return _sdataSection; }
> +  Section<ELF32LE> *getSDataSection() { return &_sdataSection; }
>
>    uint64_t getGOTSymAddr() {
>      std::call_once(_gotOnce, [this]() {
> @@ -100,8 +99,7 @@ public:
>    }
>
>  private:
> -  llvm::BumpPtrAllocator _alloc;
> -  SDataSection *_sdataSection = nullptr;
> +  SDataSection _sdataSection;
>    uint64_t _gotAddr = 0;
>    std::once_flag _gotOnce;
>  };
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list