Hi Thomas,
On 15/11/17 16:57, Thomas Preudhomme wrote:
Hi,
Commit r253825 which introduced some sanity checks for sbitmap revealed
a bug in the conversion of cmse_nonsecure_entry_clear_before_return ()
to using bitmap structure. bitmap_and expects that the two bitmaps have
the same length, yet the code in
cmse_nonsecure_entry_clear_before_return () have different size for
to_clear_bitmap and to_clear_arg_regs_bitmap, with the assumption that
bitmap_and would behave has if the bits not allocated were in fact zero.
This commit makes sure both bitmap are equally sized.
ChangeLog entry is as follows:
*** gcc/ChangeLog ***
2017-11-13 Thomas Preud'homme <thomas.preudho...@arm.com>
* config/arm/arm.c (cmse_nonsecure_entry_clear_before_return):
Allocate
to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
Testing: Bootstrapped GCC on arm-none-linux-gnueabihf target and
testsuite shows no regression. Running cmse.exp tests for Armv8-M
Baseline and Mainline shows FAIL->PASS for bitfield-1, bitfield-2,
bitfield-3 and struct-1 testcases.
Is this ok for trunk?
Ok.
Thanks,
Kyrill
Best regards,
Thomas