]> granicus.if.org Git - clang/commitdiff
Support implicit casts from pointers to references.
authorTed Kremenek <kremenek@apple.com>
Wed, 30 Apr 2008 21:10:19 +0000 (21:10 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 30 Apr 2008 21:10:19 +0000 (21:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50498 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/GRSimpleVals.cpp

index b496f2644337ea037f03c0c1e26cf5daace68ab3..aa1dc7e8cb3f752e1c04a65dcc3ec10c0c955435 100644 (file)
@@ -320,7 +320,13 @@ RVal GRSimpleVals::EvalCast(GRExprEngine& Eng, NonLVal X, QualType T) {
 
 RVal GRSimpleVals::EvalCast(GRExprEngine& Eng, LVal X, QualType T) {
   
-  if (IsPointerType(T))
+  // Casts from pointers -> pointers, just return the lval.
+  //
+  // Casts from pointers -> references, just return the lval.  These
+  //   can be introduced by the frontend for corner cases, e.g
+  //   casting from va_list* to __builtin_va_list&.
+  //
+  if (IsPointerType(T) || T->isReferenceType())
     return X;
   
   assert (T->isIntegerType());