================
@@ -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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits