[lld] r236726 - [ARM] llvm_unreachable => make_*_reloc_error in group relocs

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu May 21 16:52:40 PDT 2015


It is good practice to include a test case when adding error handling.
On May 7, 2015 9:48 AM, "Denis Protivensky" <dprotivensky at accesssoftek.com>
wrote:

> Author: denis-protivensky
> Date: Thu May  7 08:41:44 2015
> New Revision: 236726
>
> URL: http://llvm.org/viewvc/llvm-project?rev=236726&view=rev
> Log:
> [ARM] llvm_unreachable => make_*_reloc_error in group relocs
>
> Modified:
>     lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp?rev=236726&r1=236725&r2=236726&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp Thu May  7
> 08:41:44 2015
> @@ -112,6 +112,11 @@ static Reference::Addend readAddend(cons
>    }
>  }
>
> +static inline std::error_code make_unsupported_range_group_reloc_error() {
> +  return make_dynamic_error_code(
> +      "Negative offsets for group relocations are not implemented");
> +}
> +
>  static inline std::error_code applyArmReloc(uint8_t *location, uint32_t
> result,
>                                              uint32_t mask = 0xFFFFFFFF) {
>    assert(!(result & ~mask));
> @@ -475,10 +480,8 @@ static std::error_code relocR_ARM_ALU_PC
>  static std::error_code relocR_ARM_ALU_PC_G0_NC(uint8_t *location,
> uint64_t P,
>                                                 uint64_t S, int64_t A) {
>    int32_t result = (int32_t)(S + A - P);
> -
>    if (result < 0)
> -    llvm_unreachable(
> -        "Negative offsets for group relocations has not been
> implemented");
> +    return make_unsupported_range_group_reloc_error();
>
>    DEBUG(llvm::dbgs() << "\t\tHandle " << LLVM_FUNCTION_NAME << " -";
>          llvm::dbgs() << " S: 0x" << Twine::utohexstr(S);
> @@ -494,10 +497,8 @@ static std::error_code relocR_ARM_ALU_PC
>  static std::error_code relocR_ARM_ALU_PC_G1_NC(uint8_t *location,
> uint64_t P,
>                                                 uint64_t S, int64_t A) {
>    int32_t result = (int32_t)(S + A - P);
> -
>    if (result < 0)
> -    llvm_unreachable(
> -        "Negative offsets for group relocations has not been
> implemented");
> +    return make_unsupported_range_group_reloc_error();
>
>    DEBUG(llvm::dbgs() << "\t\tHandle " << LLVM_FUNCTION_NAME << " -";
>          llvm::dbgs() << " S: 0x" << Twine::utohexstr(S);
> @@ -513,10 +514,8 @@ static std::error_code relocR_ARM_ALU_PC
>  static std::error_code relocR_ARM_LDR_PC_G2(uint8_t *location, uint64_t P,
>                                              uint64_t S, int64_t A) {
>    int32_t result = (int32_t)(S + A - P);
> -
>    if (result < 0)
> -    llvm_unreachable(
> -        "Negative offsets for group relocations has not been
> implemented");
> +    return make_unsupported_range_group_reloc_error();
>
>    DEBUG(llvm::dbgs() << "\t\tHandle " << LLVM_FUNCTION_NAME << " -";
>          llvm::dbgs() << " S: 0x" << Twine::utohexstr(S);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150521/9424651f/attachment.html>


More information about the llvm-commits mailing list