aboutsummaryrefslogtreecommitdiff
path: root/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'expr.c')
-rw-r--r--expr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/expr.c b/expr.c
index 4762d7a..2508879 100644
--- a/expr.c
+++ b/expr.c
@@ -119,6 +119,12 @@ mkunaryexpr(enum tokenkind op, struct expr *base)
switch (op) {
case TBAND:
if (base->decayed) {
+ /*
+ An array gets decayed to a pointer to its first element,
+ but with an explicit '&' operator, it is a pointer to
+ the array.
+ */
+ base->type = mkpointertype(base->base->type, base->base->qual);
base->decayed = false;
return base;
}