From: Martin Storsjö Date: Tue, 2 Aug 2022 07:29:01 +0000 (+0300) Subject: [LLD] [MachO] Fix GCC build warnings X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=59c6f418fa3c5d6f5c8b75ebd817be8113de7931;p=platform%2Fupstream%2Fllvm.git [LLD] [MachO] Fix GCC build warnings This fixes the following warnings produced by GCC 9: ../tools/lld/MachO/Arch/ARM64.cpp: In member function ‘void {anonymous}::OptimizationHintContext::applyAdrpLdr(const lld::macho::OptimizationHint&)’: ../tools/lld/MachO/Arch/ARM64.cpp:448:18: warning: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘uint64_t’ {aka ‘long unsigned int’} [-Wsign-compare] 448 | if (ldr.offset != (rel1->referentVA & 0xfff)) | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../tools/lld/MachO/UnwindInfoSection.cpp: In function ‘bool canFoldEncoding(compact_unwind_encoding_t)’: ../tools/lld/MachO/UnwindInfoSection.cpp:404:44: warning: comparison between ‘enum’ and ‘enum’ [-Wenum-compare] 404 | static_assert(UNWIND_X86_64_MODE_MASK == UNWIND_X86_MODE_MASK, ""); | ^~~~~~~~~~~~~~~~~~~~ ../tools/lld/MachO/UnwindInfoSection.cpp:405:49: warning: comparison between ‘enum’ and ‘enum’ [-Wenum-compare] 405 | static_assert(UNWIND_X86_64_MODE_STACK_IND == UNWIND_X86_MODE_STACK_IND, ""); | ^~~~~~~~~~~~~~~~~~~~~~~~~ Differential Revision: https://reviews.llvm.org/D130970 --- diff --git a/lld/MachO/Arch/ARM64.cpp b/lld/MachO/Arch/ARM64.cpp index 5999d9b..0065752 100644 --- a/lld/MachO/Arch/ARM64.cpp +++ b/lld/MachO/Arch/ARM64.cpp @@ -445,7 +445,7 @@ void OptimizationHintContext::applyAdrpLdr(const OptimizationHint &hint) { Optional rel2 = findReloc(hint.offset0 + hint.delta[0]); if (!rel1 || !rel2) return; - if (ldr.offset != (rel1->referentVA & 0xfff)) + if (ldr.offset != static_cast(rel1->referentVA & 0xfff)) return; ldr.offset = rel1->referentVA - rel2->rel.offset - isec->getVA(); if (!isLiteralLdrEligible(ldr)) diff --git a/lld/MachO/UnwindInfoSection.cpp b/lld/MachO/UnwindInfoSection.cpp index 3220579..c3f563d 100644 --- a/lld/MachO/UnwindInfoSection.cpp +++ b/lld/MachO/UnwindInfoSection.cpp @@ -401,8 +401,12 @@ static bool canFoldEncoding(compact_unwind_encoding_t encoding) { // of the unwind info's unwind address, two functions that have identical // unwind info can't be folded if it's using this encoding since both // entries need unique addresses. - static_assert(UNWIND_X86_64_MODE_MASK == UNWIND_X86_MODE_MASK, ""); - static_assert(UNWIND_X86_64_MODE_STACK_IND == UNWIND_X86_MODE_STACK_IND, ""); + static_assert(static_cast(UNWIND_X86_64_MODE_MASK) == + static_cast(UNWIND_X86_MODE_MASK), + ""); + static_assert(static_cast(UNWIND_X86_64_MODE_STACK_IND) == + static_cast(UNWIND_X86_MODE_STACK_IND), + ""); if ((target->cpuType == CPU_TYPE_X86_64 || target->cpuType == CPU_TYPE_X86) && (encoding & UNWIND_X86_64_MODE_MASK) == UNWIND_X86_64_MODE_STACK_IND) { // FIXME: Consider passing in the two function addresses and getting