It's adding tests for actual functionality:<div> If the offset is negative, error out with "blah".</div><div><br></div><div>Regards,</div><div><br></div><div> Filipe<br><br>On Thursday, May 21, 2015, Denis Protivensky <<a href="mailto:dprotivensky@accesssoftek.com">dprotivensky@accesssoftek.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
Yes, I know that. It's not error handling, but rather an indication
of missing functionality.<br>
I consider adding tests for not implemented functionality to be
excessive.<br>
<br>
<div>On 05/22/2015 02:52 AM, Rafael
Espíndola wrote:<br>
</div>
<blockquote type="cite">
<p dir="ltr">It is good practice to include a test case when
adding error handling. </p>
<div class="gmail_quote">On May 7, 2015 9:48 AM, "Denis
Protivensky" <<a href="javascript:_e(%7B%7D,'cvml','dprotivensky@accesssoftek.com');" target="_blank">dprotivensky@accesssoftek.com</a>>
wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author:
denis-protivensky<br>
Date: Thu May 7 08:41:44 2015<br>
New Revision: 236726<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D236726-26view-3Drev&d=AwMGaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iixKjXcsENgPMCwJibZbCizoIK42E3-Z0gcTZTBaXT0&s=Zh9HDU2dYjvwOEHpIujW76DGzDgMjWcF5EHWbbutZGc&e=" target="_blank">http://llvm.org/viewvc/llvm-project?rev=236726&view=rev</a><br>
Log:<br>
[ARM] llvm_unreachable => make_*_reloc_error in group
relocs<br>
<br>
Modified:<br>
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp<br>
<br>
Modified:
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_lld_trunk_lib_ReaderWriter_ELF_ARM_ARMRelocationHandler.cpp-3Frev-3D236726-26r1-3D236725-26r2-3D236726-26view-3Ddiff&d=AwMGaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iixKjXcsENgPMCwJibZbCizoIK42E3-Z0gcTZTBaXT0&s=Q4c3WV1ZryTA_gWgPsQ3tpIeDZpZAzpx4aCkNiL3Axc&e=" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp?rev=236726&r1=236725&r2=236726&view=diff</a><br>
==============================================================================<br>
---
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp
(original)<br>
+++
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp
Thu May 7 08:41:44 2015<br>
@@ -112,6 +112,11 @@ static Reference::Addend readAddend(cons<br>
}<br>
}<br>
<br>
+static inline std::error_code
make_unsupported_range_group_reloc_error() {<br>
+ return make_dynamic_error_code(<br>
+ "Negative offsets for group relocations are not
implemented");<br>
+}<br>
+<br>
static inline std::error_code applyArmReloc(uint8_t
*location, uint32_t result,<br>
uint32_t mask =
0xFFFFFFFF) {<br>
assert(!(result & ~mask));<br>
@@ -475,10 +480,8 @@ static std::error_code relocR_ARM_ALU_PC<br>
static std::error_code relocR_ARM_ALU_PC_G0_NC(uint8_t
*location, uint64_t P,<br>
uint64_t S,
int64_t A) {<br>
int32_t result = (int32_t)(S + A - P);<br>
-<br>
if (result < 0)<br>
- llvm_unreachable(<br>
- "Negative offsets for group relocations has not been
implemented");<br>
+ return make_unsupported_range_group_reloc_error();<br>
<br>
DEBUG(llvm::dbgs() << "\t\tHandle " <<
LLVM_FUNCTION_NAME << " -";<br>
llvm::dbgs() << " S: 0x" <<
Twine::utohexstr(S);<br>
@@ -494,10 +497,8 @@ static std::error_code relocR_ARM_ALU_PC<br>
static std::error_code relocR_ARM_ALU_PC_G1_NC(uint8_t
*location, uint64_t P,<br>
uint64_t S,
int64_t A) {<br>
int32_t result = (int32_t)(S + A - P);<br>
-<br>
if (result < 0)<br>
- llvm_unreachable(<br>
- "Negative offsets for group relocations has not been
implemented");<br>
+ return make_unsupported_range_group_reloc_error();<br>
<br>
DEBUG(llvm::dbgs() << "\t\tHandle " <<
LLVM_FUNCTION_NAME << " -";<br>
llvm::dbgs() << " S: 0x" <<
Twine::utohexstr(S);<br>
@@ -513,10 +514,8 @@ static std::error_code relocR_ARM_ALU_PC<br>
static std::error_code relocR_ARM_LDR_PC_G2(uint8_t
*location, uint64_t P,<br>
uint64_t S,
int64_t A) {<br>
int32_t result = (int32_t)(S + A - P);<br>
-<br>
if (result < 0)<br>
- llvm_unreachable(<br>
- "Negative offsets for group relocations has not been
implemented");<br>
+ return make_unsupported_range_group_reloc_error();<br>
<br>
DEBUG(llvm::dbgs() << "\t\tHandle " <<
LLVM_FUNCTION_NAME << " -";<br>
llvm::dbgs() << " S: 0x" <<
Twine::utohexstr(S);<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="javascript:_e(%7B%7D,'cvml','llvm-commits@cs.uiuc.edu');" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote></div><br><br>-- <br> F<br><br>