aboutsummaryrefslogtreecommitdiff
path: root/tests/tcctest.c
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2010-08-31 08:35:31 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2010-08-31 08:35:31 +0900
commitc31dc7aa0c36e19e15cf41a0d2728e89ad339660 (patch)
treebf52fce67702cc761a07472a63264429f2f1a433 /tests/tcctest.c
parent9d347f87426aebabe4eb52207b2f9ea8d2274809 (diff)
downloadtinycc-c31dc7aa0c36e19e15cf41a0d2728e89ad339660.tar.gz
tinycc-c31dc7aa0c36e19e15cf41a0d2728e89ad339660.tar.bz2
Fix casts from 32bit integer types to 64bit integer types.
This bug was reported in http://lists.gnu.org/archive/html/tinycc-devel/2010-08/msg00050.html In this case, we should not emit any code when we cast from VT_FUNC to VT_PTR.
Diffstat (limited to 'tests/tcctest.c')
-rw-r--r--tests/tcctest.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/tcctest.c b/tests/tcctest.c
index 7236971..916db09 100644
--- a/tests/tcctest.c
+++ b/tests/tcctest.c
@@ -1094,6 +1094,14 @@ void struct_assign_test(void)
printf("before call: %d %d\n", lsta2.f1, lsta2.f2);
lsta2 = struct_assign_test2(lsta2, 4);
printf("after call: %d %d\n", lsta2.f1, lsta2.f2);
+
+ static struct {
+ void (*elem)();
+ } t[] = {
+ /* XXX: we should allow this even without braces */
+ { struct_assign_test }
+ };
+ printf("%d\n", struct_assign_test == t[0].elem);
}
/* casts to short/char */