[llvm] r239113 - [Object, ELF] Don't call llvm_unreachable() from createELFObjectFile.

Alexey Samsonov vonosmas at gmail.com
Tue Jun 9 18:00:12 PDT 2015


No.

$ dwarfdump missing >/dev/null ; echo $?
dwarfdump ERROR:  can't open missing
1
$ ./bin/llvm-dwarfdump missing >/dev/null ; echo $?
missing: No such file or directory
0

Do you agree we should change this (and
http://llvm.org/docs/CommandGuide/llvm-dwarfdump.html)?


On Fri, Jun 5, 2015 at 8:04 PM, Rafael Espíndola <rafael.espindola at gmail.com
> wrote:

> Interesting, does the regular dwarf dump also returns with 0?
>
> Not that you changed it, I just noticed the test.
>
> Thanks,
> Rafael
> On Jun 4, 2015 7:16 PM, "Alexey Samsonov" <vonosmas at gmail.com> wrote:
>
>> Author: samsonov
>> Date: Thu Jun  4 17:58:25 2015
>> New Revision: 239113
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=239113&view=rev
>> Log:
>> [Object, ELF] Don't call llvm_unreachable() from createELFObjectFile.
>>
>> Instead, return a proper error code from factory.
>>
>> Added:
>>     llvm/trunk/test/DebugInfo/Inputs/invalid.elf.2
>> Modified:
>>     llvm/trunk/lib/Object/ELFObjectFile.cpp
>>     llvm/trunk/test/DebugInfo/dwarfdump-invalid.test
>>
>> Modified: llvm/trunk/lib/Object/ELFObjectFile.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ELFObjectFile.cpp?rev=239113&r1=239112&r2=239113&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Object/ELFObjectFile.cpp (original)
>> +++ llvm/trunk/lib/Object/ELFObjectFile.cpp Thu Jun  4 17:58:25 2015
>> @@ -38,7 +38,7 @@ ObjectFile::createELFObjectFile(MemoryBu
>>      else if (Ident.second == ELF::ELFDATA2MSB)
>>        R.reset(new ELFObjectFile<ELFType<support::big, false>>(Obj, EC));
>>      else
>> -      llvm_unreachable("Buffer is not an ELF object file!");
>> +      return object_error::parse_failed;
>>    } else {
>>      assert(Ident.first == ELF::ELFCLASS64);
>>      if (Ident.second == ELF::ELFDATA2LSB)
>> @@ -46,7 +46,7 @@ ObjectFile::createELFObjectFile(MemoryBu
>>      else if (Ident.second == ELF::ELFDATA2MSB)
>>        R.reset(new ELFObjectFile<ELFType<support::big, true>>(Obj, EC));
>>      else
>> -      llvm_unreachable("Buffer is not an ELF object file!");
>> +      return object_error::parse_failed;
>>    }
>>
>>    if (EC)
>>
>> Added: llvm/trunk/test/DebugInfo/Inputs/invalid.elf.2
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/invalid.elf.2?rev=239113&view=auto
>>
>> ==============================================================================
>> --- llvm/trunk/test/DebugInfo/Inputs/invalid.elf.2 (added)
>> +++ llvm/trunk/test/DebugInfo/Inputs/invalid.elf.2 Thu Jun  4 17:58:25
>> 2015
>> @@ -0,0 +1 @@
>> + ELF 'L:þB“ ELF  ï
>> \ No newline at end of file
>>
>> Modified: llvm/trunk/test/DebugInfo/dwarfdump-invalid.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/dwarfdump-invalid.test?rev=239113&r1=239112&r2=239113&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/DebugInfo/dwarfdump-invalid.test (original)
>> +++ llvm/trunk/test/DebugInfo/dwarfdump-invalid.test Thu Jun  4 17:58:25
>> 2015
>> @@ -1,4 +1,5 @@
>>  ; Verify that llvm-dwarfdump doesn't crash on broken input files.
>>
>>  RUN: llvm-dwarfdump %p/Inputs/invalid.elf 2>&1 | FileCheck %s
>> --check-prefix=INVALID-ELF
>> +RUN: llvm-dwarfdump %p/Inputs/invalid.elf.2 2>&1 | FileCheck %s
>> --check-prefix=INVALID-ELF
>>  INVALID-ELF: Invalid data was encountered while parsing the file
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>


-- 
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150609/49b83db1/attachment.html>


More information about the llvm-commits mailing list