[lld] r262813 - Split BitcodeFile::parse. NFC.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 7 13:01:03 PST 2016


The tricky part is that the return value of getVisibility is not a enum
value but just a small integer such as uint8_t. So I was not sure if it
covered all possible cases.

On Mon, Mar 7, 2016 at 12:49 PM, Sean Silva <chisophugis at gmail.com> wrote:

>
>
> On Mon, Mar 7, 2016 at 11:09 AM, Rui Ueyama via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> On Mon, Mar 7, 2016 at 7:36 AM, Rafael EspĂ­ndola <
>> rafael.espindola at gmail.com> wrote:
>>
>>> This is a nice change in general, but why convert from
>>> GlobalValue::DefaultVisibility to default? We had a fully covered
>>> switch before.
>>>
>>
>> That's what I was not sure, so I was thinking that that could cause a
>> "function does not return a value" warning. I will revert that part.
>>
>
> We have guidance about that here:
> http://llvm.org/docs/CodingStandards.html#don-t-use-default-labels-in-fully-covered-switches-over-enumerations
>
> -- Sean Silva
>
>
>>
>>
>>> Cheers,
>>> Rafael
>>>
>>>
>>> On 6 March 2016 at 19:54, Rui Ueyama via llvm-commits
>>> <llvm-commits at lists.llvm.org> wrote:
>>> > Author: ruiu
>>> > Date: Sun Mar  6 18:54:17 2016
>>> > New Revision: 262813
>>> >
>>> > URL: http://llvm.org/viewvc/llvm-project?rev=262813&view=rev
>>> > Log:
>>> > Split BitcodeFile::parse. NFC.
>>> >
>>> > Modified:
>>> >     lld/trunk/ELF/InputFiles.cpp
>>> >
>>> > Modified: lld/trunk/ELF/InputFiles.cpp
>>> > URL:
>>> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=262813&r1=262812&r2=262813&view=diff
>>> >
>>> ==============================================================================
>>> > --- lld/trunk/ELF/InputFiles.cpp (original)
>>> > +++ lld/trunk/ELF/InputFiles.cpp Sun Mar  6 18:54:17 2016
>>> > @@ -414,6 +414,17 @@ bool BitcodeFile::classof(const InputFil
>>> >    return F->kind() == BitcodeKind;
>>> >  }
>>> >
>>> > +static uint8_t getGvVisibility(const GlobalValue *GV) {
>>> > +  switch (GV->getVisibility()) {
>>> > +  case GlobalValue::HiddenVisibility:
>>> > +    return STV_HIDDEN;
>>> > +  case GlobalValue::ProtectedVisibility:
>>> > +    return STV_PROTECTED;
>>> > +  default:
>>> > +    return STV_DEFAULT;
>>> > +  }
>>> > +}
>>> > +
>>> >  void BitcodeFile::parse(DenseSet<StringRef> &ComdatGroups) {
>>> >    LLVMContext Context;
>>> >    std::unique_ptr<IRObjectFile> Obj = check(IRObjectFile::create(MB,
>>> Context));
>>> > @@ -432,23 +443,14 @@ void BitcodeFile::parse(DenseSet<StringR
>>> >        if (const Comdat *C = GV->getComdat())
>>> >          if (!KeptComdats.count(C))
>>> >            continue;
>>> > -      switch (GV->getVisibility()) {
>>> > -      case GlobalValue::DefaultVisibility:
>>> > -        Visibility = STV_DEFAULT;
>>> > -        break;
>>> > -      case GlobalValue::HiddenVisibility:
>>> > -        Visibility = STV_HIDDEN;
>>> > -        break;
>>> > -      case GlobalValue::ProtectedVisibility:
>>> > -        Visibility = STV_PROTECTED;
>>> > -        break;
>>> > -      }
>>> > +      Visibility = getGvVisibility(GV);
>>> >      }
>>> >
>>> >      SmallString<64> Name;
>>> >      raw_svector_ostream OS(Name);
>>> >      Sym.printName(OS);
>>> >      StringRef NameRef = Saver.save(StringRef(Name));
>>> > +
>>> >      SymbolBody *Body;
>>> >      uint32_t Flags = Sym.getFlags();
>>> >      bool IsWeak = Flags & BasicSymbolRef::SF_Weak;
>>> >
>>> >
>>> > _______________________________________________
>>> > llvm-commits mailing list
>>> > llvm-commits at lists.llvm.org
>>> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>
>>
>>
>> _______________________________________________
>> 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/20160307/c2a44501/attachment.html>


More information about the llvm-commits mailing list