Skip to content

Commit 03dff0d

Browse files
committed
[clang-tidy] Disambiguate calls to log
c8644b1 <https://reviews.llvm.org/rGc8644b18f570be9d26d83cdeeb2369cd3cbddaf1> broke the Solaris/amd64 <https://lab.llvm.org/staging/#/builders/101/builds/15078> and Solaris/sparcv9 <https://lab.llvm.org/staging/#/builders/50/builds/15116> buildbots: FAILED: tools/clang/tools/extra/clang-tidy/altera/CMakeFiles/obj.clangTidyAlteraModule.dir/UnrollLoopsCheck.cpp.o [...] /vol/llvm/src/llvm-project/dist/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:217:25: error: call to 'log' is ambiguous 217 | Iterations = 1 + (log(EndValue) - log(InitValue)) / log(ConstantValue); | ^~~ /usr/include/iso/math_iso.h:60:15: note: candidate function 60 | extern double log __P((double)); | ^ /usr/include/iso/math_iso.h:158:15: note: candidate function 158 | inline float log(float __X) { return __logf(__X); } | ^ /usr/include/iso/math_iso.h:193:21: note: candidate function 193 | inline long double log(long double __X) { return __logl(__X); } | ^ Fixed by disambituating the calls with `double` casts. Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D158959
1 parent 24fcc0a commit 03dff0d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,12 @@ bool UnrollLoopsCheck::hasLargeNumIterations(const Stmt *Statement,
214214
Iterations = ceil(float(InitValue - EndValue) / ConstantValue);
215215
break;
216216
case (BO_MulAssign):
217-
Iterations = 1 + (log(EndValue) - log(InitValue)) / log(ConstantValue);
217+
Iterations = 1 + (log((double)EndValue) - log((double)InitValue)) /
218+
log((double)ConstantValue);
218219
break;
219220
case (BO_DivAssign):
220-
Iterations = 1 + (log(InitValue) - log(EndValue)) / log(ConstantValue);
221+
Iterations = 1 + (log((double)InitValue) - log((double)EndValue)) /
222+
log((double)ConstantValue);
221223
break;
222224
default:
223225
// All other operators are not handled; assume large bounds.

0 commit comments

Comments
 (0)