My useless-if-before-free script did not detect uses
like this (with a cast):
if (s)
free ((void *) s)
Now it does:
diff --git a/ChangeLog b/ChangeLog
index 749d1cd..11152c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2008-03-12 Jim Meyering <[EMAIL PROTECTED]>
+ Recognize optional cast of the argument to free.
+ * build-aux/useless-if-before-free: Update regexps.
+
* build-aux/bootstrap (gnulib_tool): Remove trailing blanks.
2008-03-11 Bruno Haible <[EMAIL PROTECTED]>
diff --git a/build-aux/useless-if-before-free b/build-aux/useless-if-before-free
index eb18483..626d19a 100755
--- a/build-aux/useless-if-before-free
+++ b/build-aux/useless-if-before-free
@@ -123,8 +123,8 @@ EOF
{
if ($line =~
/\b(if\s*\(\s*(\S+?)(?:\s*!=\s*NULL)?\s*\)
- (?: \s*$regexp\s*\(\s*\2\s*\)|
- \s*\{\s*$regexp\s*\(\s*\2\s*\)\s*;\s*\}))/sx)
+ (?: \s*$regexp\s*\((?:\s*\([^)]+\))\s*\2\s*\)|
+ \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))\s*\2\s*\)\s*;\s*\}))/sx)
{
$found_match = 1;
$list
--
1.5.4.4.482.g5f904