summaryrefslogtreecommitdiff
path: root/05/parse.b
diff options
context:
space:
mode:
Diffstat (limited to '05/parse.b')
-rw-r--r--05/parse.b5
1 files changed, 4 insertions, 1 deletions
diff --git a/05/parse.b b/05/parse.b
index 60dc73d..661a257 100644
--- a/05/parse.b
+++ b/05/parse.b
@@ -1620,10 +1620,13 @@ function parse_expression
return out
:unary_dereference
type_decay_array_to_pointer(*4a)
- ; @TODO : dereferencing a function (annoyingly, p is the same as *p for function pointers)
+ if *2p == TYPE2_FUNCTION_POINTER goto type_deref_fpointer
if *1p != TYPE_POINTER goto unary_bad_type
*4type = *4a + 1
return out
+ :type_deref_fpointer
+ *4type = *4a
+ return out
:unary_type_logical_not
type_decay_array_to_pointer(*4a)
if *1p > TYPE_POINTER goto unary_bad_type