[PATCH 0/4] bitpos expansion summary reloaded

Siddhesh Poyarekar
2012-09-27T13:33:14Z

Hi,

This is iteration (insert-large-number-here) of the bitpos expansion
patch with all its reviews, etc. The patch is now split into 4 parts
as follows:

1) The main bitpos and type.length expansion changes to generic code
2) Additional validation in some places to ensure that a size fits into
memory (ensure_size_t)
3) Changes to watchpoint functions
4) bitpos and type length related changes to tdep files. I separated
these out since they had a related pattern of change, i.e. pushing
of variables on stack and getting/storing return values.

The 4th part is new, but the content is not very different. Over time
I have also picked out portions of the patch and pushed them as
independent changes (some of which I rightly got flak for ;)) and as a
result I have been able to shave off a total of about 1k lines off the
patch, making it a bit easier to review. The split is also aimed at
easing the review.

There is also a 5th patch that Tom has already acked, but I have held
back (and will commit with these patches) since it will be complete only
with the bitpos change:

http://sourceware.org/ml/gdb-patches/2012-08/msg00562.html

I have also updated my repository of splint output reports here:

http://git.siddhesh.in/cgit.cgi/splint.git/

The reports generated earlier were splint-bitpos2.*, the noteworthy ones
being splint-bitpos2.locdiff.processed and
splint-bitpos2.locdiff.report. The new report generated is now called
splint-bitpos3.locdiff.processed.

There are a few improvements in the scripts that generate these reports
(splint-locdiff and splint-siddhesh-process-locdiff), the main one
being replacement of "arbitrary signed integer" with ssize_t and
"arbitrary unsigned integer" with size_t. Additionally, some more
warnings are ignored by the script, like assignments from int to
size_t, etc. that are safe.

There is an additional step of processing I have brought in (sorry),
which is done by checkreport.pl. The way to run it is as follows:

diff -U-1 \
splint-bitpos2.locdiff.processed \
splint-bitpos3.locdiff.processed | \
grep "^[-+](" | \
perl -e 'while(<>){s{^(.)(\([^:]+):([0-9]+)\):(.*)}{print("$2):$4\t\t$1$3\n")}egm}' | \
sort | \
./checkreport.pl | \
grep -v "^+++" | \
grep -v "^----" | \
grep "^+" | sed 's/^.\(.*\)/\1/' > report

This generated the 'report' file in the repo, which I copied over to
report.done and analyzed warnings. This report contains the new warnings
that are not in splint-bitpos2.locdiff.processed. The report to view is:

http://git.siddhesh.in/cgit.cgi/splint.git/tree/report.done

Now patches coming up next.

Regards,
Siddhesh