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

Reply via email to