summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRSimpleVals.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-04-30 21:10:19 +0000
committerTed Kremenek <kremenek@apple.com>2008-04-30 21:10:19 +0000
commite0e8b535cf31e7f783842711e531b32257bee94f (patch)
tree5d4ece0b7a5a28c8e442bcbd6a8edc802af5f1d4 /clang/lib/Analysis/GRSimpleVals.cpp
parent84dea154fc065fa2c32aec8ddf0b0cb7366f5a7e (diff)
downloadbcm5719-llvm-e0e8b535cf31e7f783842711e531b32257bee94f.tar.gz
bcm5719-llvm-e0e8b535cf31e7f783842711e531b32257bee94f.zip
Support implicit casts from pointers to references.
llvm-svn: 50498
Diffstat (limited to 'clang/lib/Analysis/GRSimpleVals.cpp')
-rw-r--r--clang/lib/Analysis/GRSimpleVals.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Analysis/GRSimpleVals.cpp b/clang/lib/Analysis/GRSimpleVals.cpp
index b496f264433..aa1dc7e8cb3 100644
--- a/clang/lib/Analysis/GRSimpleVals.cpp
+++ b/clang/lib/Analysis/GRSimpleVals.cpp
@@ -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());
OpenPOWER on IntegriCloud