================
@@ -2187,7 +2187,10 @@ std::optional<SVal> 
RegionStoreManager::getBindingForDerivedDefaultValue(
 
     // Lazy bindings are usually handled through getExistingLazyBinding().
     // We should unify these two code paths at some point.
-    if (isa<nonloc::LazyCompoundVal, nonloc::CompoundVal>(val))
+    // 'nonloc::ConcreteInt' values can arise from compound literals in
+    // designated initializers for bitfields in unions.
+    if (isa<nonloc::LazyCompoundVal, nonloc::CompoundVal, nonloc::ConcreteInt>(
+            val))
----------------
vbvictor wrote:

> Could you help me with a Store for which the crash happened without the fix?

I'm not sure what do you mean by "a Store", minimal repro goes like this: 
https://godbolt.org/z/8z1vqf6Wv.
We get the crush as soon as try to get default binding of a copied struct.

The fix may be a little "light-minded", I'll try to investigate more on the 
issue with other NonLocs that could get beside ConcreteInt.

https://github.com/llvm/llvm-project/pull/146418
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to