This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 0/4] bitpos expansion summary reloaded
- From: Siddhesh Poyarekar <siddhesh at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 27 Sep 2012 19:00:53 +0530
- Subject: [PATCH 0/4] bitpos expansion summary reloaded
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