From be43c8e0ed22faa6c89c6e551f2a07512673d60d Mon Sep 17 00:00:00 2001 From: Shinichiro Hamaji Date: Thu, 16 Apr 2009 01:32:16 +0900 Subject: x86-64: Cast from 64bit pointer to long long must not generate movslq. --- tcctest.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tcctest.c') diff --git a/tcctest.c b/tcctest.c index be47c90..8ef322e 100644 --- a/tcctest.c +++ b/tcctest.c @@ -1109,6 +1109,8 @@ void cast_test() char tab[10]; unsigned b,d; short s; + char *p = NULL; + p -= 0x700000000042; printf("cast_test:\n"); a = 0xfffff; @@ -1150,6 +1152,14 @@ void cast_test() printf("sizeof(+(char)'a') = %d\n", sizeof(+(char)'a')); printf("sizeof(-(char)'a') = %d\n", sizeof(-(char)'a')); printf("sizeof(~(char)'a') = %d\n", sizeof(-(char)'a')); + + /* from pointer to integer types */ + printf("%d %d %d %d %d %d %ld %ld %lld %lld\n", + (char)p, (unsigned char)p, + (short)p, (unsigned short)p, + (int)p, (unsigned int)p, + (long)p, (unsigned long)p, + (long long)p, (unsigned long long)p); } /* initializers tests */ -- cgit v1.3.1