From 662338f116c3b87c78ddb113e8e63f6329fe307f Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Thu, 14 Jul 2016 04:09:49 +0200 Subject: Fix function to pointer conversion This snippet is valid: void foo(void); ... foo + 42 ... the function designator is converted to pointer to function implicitely. gen_op didn't do that and bailed out. --- tests/tcctest.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests') diff --git a/tests/tcctest.c b/tests/tcctest.c index 0b894aa..8aa50ab 100644 --- a/tests/tcctest.c +++ b/tests/tcctest.c @@ -1847,6 +1847,7 @@ void funcptr_test() int dummy; void (*func)(int); } st1; + long diff; printf("funcptr:\n"); func = # @@ -1862,6 +1863,12 @@ void funcptr_test() printf("sizeof2 = %d\n", sizeof funcptr_test); printf("sizeof3 = %d\n", sizeof(&funcptr_test)); printf("sizeof4 = %d\n", sizeof &funcptr_test); + a = 0; + func = num + a; + diff = func - num; + func(42); + (func + diff)(42); + (num + a)(43); } void lloptest(long long a, long long b) -- cgit v1.3.1