summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2010-10-07 18:44:03 +0200
committerJürg Billeter <j@bitron.ch>2010-10-07 18:44:03 +0200
commitc4916e2d6b847757638c71582d2431cd86545173 (patch)
treee9c414038e076ae691abf109748d7b242fc10552
parentec58ed2ad3e5f5d5306bc8831015c8ba2a67e1c7 (diff)
downloadvala-c4916e2d6b847757638c71582d2431cd86545173.tar.gz
Fix address-of operator for pointer element access
-rw-r--r--vala/valaaddressofexpression.vala6
1 files changed, 4 insertions, 2 deletions
diff --git a/vala/valaaddressofexpression.vala b/vala/valaaddressofexpression.vala
index 6ac0b1e1b..1033ccc13 100644
--- a/vala/valaaddressofexpression.vala
+++ b/vala/valaaddressofexpression.vala
@@ -83,10 +83,12 @@ public class Vala.AddressofExpression : Expression {
error = true;
return false;
}
+ var ea = inner as ElementAccess;
if (inner is MemberAccess && inner.symbol_reference is Variable) {
// address of variable is always possible
- } else if (inner is ElementAccess && ((ElementAccess) inner).container.value_type is ArrayType) {
- // address of element of regular array is always possible
+ } else if (ea != null &&
+ (ea.container.value_type is ArrayType || ea.container.value_type is PointerType)) {
+ // address of element of regular array or pointer is always possible
} else {
error = true;
Report.error (source_reference, "Address-of operator not supported for this expression");