From 33ea934c8fe501928572ed752ef520822060fa52 Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Tue, 7 Feb 2012 08:18:33 -0800 Subject: [PATCH] Fix over-aggressive check in DereferenceExpr::TypeCheck() (Reference types are allowed as well.) --- expr.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/expr.cpp b/expr.cpp index ac569693..ec242fea 100644 --- a/expr.cpp +++ b/expr.cpp @@ -6325,9 +6325,10 @@ DereferenceExpr::TypeCheck() { return NULL; } - if (dynamic_cast(expr->GetType()) == NULL) { - Error(pos, "Illegal to dereference non-pointer type \"%s\".", - expr->GetType()->GetString().c_str()); + if (dynamic_cast(expr->GetType()) == NULL && + dynamic_cast(expr->GetType()) == NULL) { + Error(pos, "Illegal to dereference non-pointer or reference " + "type \"%s\".", expr->GetType()->GetString().c_str()); return NULL; }