From: Chia-hung Duan Date: Fri, 14 Oct 2022 06:36:47 +0000 (+0000) Subject: [scudo] Fix implicitly narrow casting (NFC) X-Git-Tag: upstream/17.0.6~30450 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3ead26e65bab612e6aead979646b40c6c15d9ba6;p=platform%2Fupstream%2Fllvm.git [scudo] Fix implicitly narrow casting (NFC) u16 may be promoted to int by arithmetic type conversion. Do an explicit cast to avoid certain compiler's warning. This fixes the problem introduced by 0fb2aeef5310eaba2915b30810464a744a80da15 Differential Revision: https://reviews.llvm.org/D135985 --- diff --git a/compiler-rt/lib/scudo/standalone/local_cache.h b/compiler-rt/lib/scudo/standalone/local_cache.h index dfdea00..b36ec8f 100644 --- a/compiler-rt/lib/scudo/standalone/local_cache.h +++ b/compiler-rt/lib/scudo/standalone/local_cache.h @@ -151,7 +151,7 @@ private: for (uptr I = 0; I < NumClasses; I++) { PerClass *P = &PerClassArray[I]; const uptr Size = SizeClassAllocator::getSizeByClassId(I); - P->MaxCount = 2 * TransferBatch::getMaxCached(Size); + P->MaxCount = static_cast(2 * TransferBatch::getMaxCached(Size)); if (I != BatchClassId) { P->ClassSize = Size; } else { @@ -187,8 +187,9 @@ private: if (UNLIKELY(!B)) reportOutOfMemory(SizeClassAllocator::getSizeByClassId(BatchClassId)); B->setFromArray(&C->Chunks[0], Count); - C->Count -= Count; - for (uptr I = 0; I < C->Count; I++) + // u16 will be promoted to int by arithmetic type conversion. + C->Count = static_cast(C->Count - Count); + for (u16 I = 0; I < C->Count; I++) C->Chunks[I] = C->Chunks[I + Count]; Allocator->pushBatch(ClassId, B); }