[lld] r232497 - [ELF][ARM] Place gotSymbol in an anonymous namespace

Shankar Easwaran shankare at codeaurora.org
Tue Mar 17 12:04:10 PDT 2015


It looks like lld doesnot follow that pattern and chooses to use 
anonymous namespace for variables as well.

I felt anonymous namespaces are much nicer though.

Shankar Easwaran

On 3/17/2015 1:58 PM, Rui Ueyama wrote:
> Yup. It's also documented in the coding style (
> http://llvm.org/docs/CodingStandards.html#anonymous-namespaces).
>
> On Tue, Mar 17, 2015 at 9:53 AM, Rafael EspĂ­ndola <
> rafael.espindola at gmail.com> wrote:
>
>> Better.
>>
>> Just a note of style: we normally use static instead of anonymous
>> namespaces when they do the same thing. Probably the best in here
>> would be
>>
>> static const char gotSymbol[] = "_GLOBAL_OFFSET_TABLE_";
>>
>>
>> On 17 March 2015 at 12:40, Shankar Easwaran <shankare at codeaurora.org>
>> wrote:
>>> Author: shankare
>>> Date: Tue Mar 17 11:40:14 2015
>>> New Revision: 232497
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=232497&view=rev
>>> Log:
>>> [ELF][ARM] Place gotSymbol in an anonymous namespace
>>>
>>> Address comments from Espindola.
>>>
>>> Modified:
>>>      lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h
>>>
>>> Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h
>>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h?rev=232497&r1=232496&r2=232497&view=diff
>> ==============================================================================
>>> --- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h (original)
>>> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h Tue Mar 17
>> 11:40:14 2015
>>> @@ -14,6 +14,10 @@
>>>   #include "ARMTargetHandler.h"
>>>   #include "ARMSymbolTable.h"
>>>
>>> +namespace {
>>> +const char *gotSymbol = "_GLOBAL_OFFSET_TABLE_";
>>> +}
>>> +
>>>   namespace lld {
>>>   namespace elf {
>>>
>>> @@ -41,14 +45,13 @@ protected:
>>>   private:
>>>     ARMLinkingContext &_context;
>>>     ARMTargetLayout<ELFT> &_armLayout;
>>> -  StringRef _gotSymbol;
>>>   };
>>>
>>>   template <class ELFT>
>>>   ARMExecutableWriter<ELFT>::ARMExecutableWriter(ARMLinkingContext
>> &context,
>>>                                                  ARMTargetLayout<ELFT>
>> &layout)
>>>       : ExecutableWriter<ELFT>(context, layout), _context(context),
>>> -      _armLayout(layout), _gotSymbol("_GLOBAL_OFFSET_TABLE_") {}
>>> +      _armLayout(layout) {}
>>>
>>>   template <class ELFT>
>>>   bool ARMExecutableWriter<ELFT>::createImplicitFiles(
>>> @@ -61,7 +64,7 @@ template <class ELFT>
>>>   void ARMExecutableWriter<ELFT>::finalizeDefaultAtomValues() {
>>>     // Finalize the atom values that are part of the parent.
>>>     ExecutableWriter<ELFT>::finalizeDefaultAtomValues();
>>> -  auto gotAtomIter = _armLayout.findAbsoluteAtom(_gotSymbol);
>>> +  auto gotAtomIter = _armLayout.findAbsoluteAtom(gotSymbol);
>>>     if (gotAtomIter != _armLayout.absoluteAtoms().end()) {
>>>       auto *gotAtom = *gotAtomIter;
>>>       if (auto gotpltSection = _armLayout.findOutputSection(".got.plt"))
>>> @@ -84,8 +87,8 @@ unique_bump_ptr<SymbolTable<ELFT>>
>>>   template <class ELFT>
>>>   void ARMExecutableWriter<ELFT>::processUndefinedSymbol(
>>>       StringRef symName, RuntimeFile<ELFT> &file) const {
>>> -  if (symName == _gotSymbol) {
>>> -    file.addAbsoluteAtom(_gotSymbol);
>>> +  if (symName == gotSymbol) {
>>> +    file.addAbsoluteAtom(gotSymbol);
>>>     } else if (symName.startswith("__exidx")) {
>>>       file.addAbsoluteAtom("__exidx_start");
>>>       file.addAbsoluteAtom("__exidx_end");
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation





More information about the llvm-commits mailing list