Fix stored type of arguments on x86-64
commit65c7f19debb61f5b554c64a04ece92b951881282
authorMichael Matz <matz@suse.de>
Sun, 24 Jun 2018 18:12:51 +0000 (24 20:12 +0200)
committerMichael Matz <matz@suse.de>
Sun, 24 Jun 2018 18:12:51 +0000 (24 20:12 +0200)
tree21aa1e26ceedfeb287785d52b132c0e22d428f8c
parent91bdb5a4a32d8b2c994ebaeaa330807e72693d4b
Fix stored type of arguments on x86-64

the lvalue Syms for arguments didn't correctly reflect
their own types in all cases (a side-effect of the type being
stored in type->t and the ->r members (as VT_LVAL_xxx), so the below
used an int load (not a byte load) in the conditional.

extern void bar (void);
void foo (signed char c)
{
  signed char x = c;
  if (c)
    bar();
}
x86_64-gen.c