diff options
author | Jürg Billeter <j@bitron.ch> | 2010-10-07 18:44:03 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2010-10-07 18:44:03 +0200 |
commit | c4916e2d6b847757638c71582d2431cd86545173 (patch) | |
tree | e9c414038e076ae691abf109748d7b242fc10552 | |
parent | ec58ed2ad3e5f5d5306bc8831015c8ba2a67e1c7 (diff) | |
download | vala-c4916e2d6b847757638c71582d2431cd86545173.tar.gz |
Fix address-of operator for pointer element access
-rw-r--r-- | vala/valaaddressofexpression.vala | 6 |
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"); |