From 3f34d80d0c4d7d3350b3eed3b80a9333663bb283 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 10 Feb 2009 05:42:58 +0000 Subject: [PATCH] Fix a crash in GRSimpleVals::EvalCast due not handling transparent unions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64200 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/GRSimpleVals.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/Analysis/GRSimpleVals.cpp b/lib/Analysis/GRSimpleVals.cpp index c1f455b2af..d50876e5b3 100644 --- a/lib/Analysis/GRSimpleVals.cpp +++ b/lib/Analysis/GRSimpleVals.cpp @@ -74,6 +74,11 @@ SVal GRSimpleVals::EvalCast(GRExprEngine& Eng, Loc X, QualType T) { if (Loc::IsLocType(T) || T->isReferenceType()) return X; + // FIXME: Handle transparent unions where a value can be "transparently" + // lifted into a union type. + if (T->isUnionType()) + return UnknownVal(); + assert (T->isIntegerType()); BasicValueFactory& BasicVals = Eng.getBasicVals(); unsigned BitWidth = Eng.getContext().getTypeSize(T); -- 2.50.1