x86-64: Fix Wrong comparisonbetweenpointerandlongcste

main (int argc, char *argv[])
{
    char *p = (char *)0x12345678ABCD000F;
    int res;
    res = (p != (char *)0x12345678ABCD000F);
    return res;
}
master
Christian Jullien 2009-12-15 17:45:15 +01:00 committed by grischka
parent e500c9118a
commit 614790dc14
1 changed files with 4 additions and 0 deletions

View File

@ -1543,6 +1543,10 @@ static void gen_cast(CType *type)
vtop->c.ll = vtop->c.ull;
else if (sbt & VT_UNSIGNED)
vtop->c.ll = vtop->c.ui;
#ifdef TCC_TARGET_X86_64
else if (sbt == VT_PTR)
;
#endif
else if (sbt != VT_LLONG)
vtop->c.ll = vtop->c.i;