Author: Bjorn Pettersson Date: 2023-09-18T23:35:48+02:00 New Revision: 929662b489225ac22dd59553f1c67842abe4dd29
URL: https://github.com/llvm/llvm-project/commit/929662b489225ac22dd59553f1c67842abe4dd29 DIFF: https://github.com/llvm/llvm-project/commit/929662b489225ac22dd59553f1c67842abe4dd29.diff LOG: Revert "[analyzer] Fix crash analyzing _BitInt() in evalIntegralCast (#65887)" This reverts commit 4898c33527f90b067f353a115442a9a702319fce. Lots of buildbots are failing, probably because lots of targets not supporting large _BitInt types. Added: Modified: clang/lib/StaticAnalyzer/Core/SValBuilder.cpp Removed: clang/test/Analysis/bitint-no-crash.c ################################################################################ diff --git a/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp b/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp index f827f43eaa7da67..4fe828bdf7681fc 100644 --- a/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp +++ b/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp @@ -598,9 +598,11 @@ SVal SValBuilder::evalIntegralCast(ProgramStateRef state, SVal val, APSIntType ToType(getContext().getTypeSize(castTy), castTy->isUnsignedIntegerType()); llvm::APSInt ToTypeMax = ToType.getMaxValue(); - - NonLoc ToTypeMaxVal = makeIntVal(ToTypeMax); - + NonLoc ToTypeMaxVal = + makeIntVal(ToTypeMax.isUnsigned() ? ToTypeMax.getZExtValue() + : ToTypeMax.getSExtValue(), + castTy) + .castAs<NonLoc>(); // Check the range of the symbol being casted against the maximum value of the // target type. NonLoc FromVal = val.castAs<NonLoc>(); diff --git a/clang/test/Analysis/bitint-no-crash.c b/clang/test/Analysis/bitint-no-crash.c deleted file mode 100644 index 6fa041974a3c981..000000000000000 --- a/clang/test/Analysis/bitint-no-crash.c +++ /dev/null @@ -1,11 +0,0 @@ - // RUN: %clang_analyze_cc1 -analyzer-checker=core \ - // RUN: -analyzer-checker=debug.ExprInspection \ - // RUN: -verify %s - -// Don't crash when using _BitInt() -// expected-no-diagnostics -_BitInt(256) a; -_BitInt(129) b; -void c() { - b = a; -} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits