tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] bitfields init : tiny solution


From: Herman ten Brugge
Subject: [Tinycc-devel] bitfields init : tiny solution
Date: Mon, 21 Sep 2020 20:22:00 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

Hello,

After commit bitfields init : tiny solution I get bound checking errors.

The reduced code:
struct tmp2 {
  long long int field : 52;
  long long int pad : 12;
};

main()
{
  struct tmp2 tmp2 = {0xFFF000FFF000FLL, 0x123};
  return (0);
}

compiled with 'tcc -b' and run with:
TCC_BOUNDS_PRINT_CALLS=1 ./a.out

gives:
...
bcheck.c, __bound_local_new(): 0x7fff19452670 0x8
bcheck.c, __bound_memset(): 0x7fff19452670, 0, 0x8
bcheck.c, __bound_ptr_add(): 0x7fff19452670 0x8
bcheck.c, __bound_memset(): 0x7fff19452678, 0, 0x2
bcheck.c, __bound_ptr_add(): 0x7fff19452678 0x2
b.c:8: at main: BCHECK: invalid pointer 0x7fff19452678, size 0x2 in memset
bcheck.c, __bound_exit():

The second memset starts at the wrong address.

    Herman


reply via email to

[Prev in Thread] Current Thread [Next in Thread]