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; }