prototype check cleanups
authornsz <nsz@port70.net>
Wed, 14 Sep 2011 01:55:45 +0000 (03:55 +0200)
committernsz <nsz@port70.net>
Wed, 14 Sep 2011 01:55:45 +0000 (03:55 +0200)
data/musl.problems
makeall.sh
tab_c99.html
type.sh

index c6c110e..b537c57 100644 (file)
@@ -1,5 +1,3 @@
-proto  aio_read        aio.h   ssize_t(struct aiocb*)  int(struct aiocb*)      ssize_t aio_read(struct aiocb *);       int aio_read(struct aiocb *aiocbp);
-proto  aio_write       aio.h   ssize_t(struct aiocb*)  int(struct aiocb*)      ssize_t aio_write(struct aiocb *);      int aio_write(struct aiocb *aiocbp);
 nodecl cfmakeraw       T
 nodecl cfsetspeed      W
 nodecl clearerr_unlocked       W
index b803b6c..012f2e3 100755 (executable)
@@ -50,16 +50,7 @@ $2 ~ /inc posix/ && $4 != $8 {
 }
 $2 ~ /inc posix/ && $7 != $10 && $5 == "p" {
        # different prototype
-
-       # todo: move to type.sh
-       gsub(/restrict const/, "const", $10)
-       gsub(/restrict/, "", $10)
-       gsub(/\[[0-9]+\]/, "[]", $10)
-       gsub(/unsigned int/, "unsigned", $7)
-       gsub(/long int/, "long", $7)
-
-       if ($7 != $10)
-               print "proto\t" $1 "\t" $4 "\t" $7 "\t" $10 "\t" $6 "\t" $9
+       print "proto\t" $1 "\t" $4 "\t" $7 "\t" $10 "\t" $6 "\t" $9
 }
 ' data/musl.all >data/musl.problems
 
index 102aebd..0644b15 100644 (file)
@@ -1,5 +1,5 @@
 <h3>musl vs c99 api</h3>
-<h4>commit</h4><p>commit <a href="http://git.etalabs.net/cgi-bin/gitweb.cgi?p=musl;a=commit;h=13cd969552409e05c941829f2aabb15e2f4d9a1f">13cd969552409e05c941829f2aabb15e2f4d9a1f</a><br>Date:   Tue Sep 13 21:09:35 2011 -0400<br><br>    fix various errors in function signatures/prototypes found by nsz
+<h4>commit</h4><p>commit <a href="http://git.etalabs.net/cgi-bin/gitweb.cgi?p=musl;a=commit;h=4da289e1b3a0d09048d9be1dfc3a7280531a1e48">4da289e1b3a0d09048d9be1dfc3a7280531a1e48</a><br>Date:   Tue Sep 13 21:21:53 2011 -0400<br><br>    fix return types for aio_read and aio_write again<br>    <br>    previous fix was backwards and propagated the wrong type rather than<br>    the right one...
 <h4>legend</h4><ul><li>status: musl implementation status summary<ul><li>(empty) - implemented<li>nosym - prototype found in include files (see decl) but not in libc.a (see sym)<li>nodecl - symbol is in libc.a but not declared in a public header<li>missing - neither in include files (see decl) nor in libc.a (see sym)</ul><li>sym: external symbol kind as found by `nm libc.a` (symbol kind only reported once)<ul><li>C - symbol is common (uninitialized data)<li>D - symbol is in the initialized data section<li>R - symbol is in the read only data section<li>T - symbol is in the text section<li>V - weak object<li>W - weak symbol</ul><li>decl: kind of declaration as found by `ctags -R include` (every occurance is reported, arch specific definitions are not linked)<ul><li>d - macro definition<li>t - typedef<li>s - struct declaration<li>u - union declaration<li>p - function prototype<li>x - external and forward variable declaration</ul></ul>
 <h4>table</h4><table border=1><tr><th colspan=3>musl<th colspan=4>c99<tr><th>status<th>sym<th>decl<th>name<th>header<th>proto<th>section
 <tr><td>missing<td>&#160;<td>&#160;<td>NDEBUG<td>assert.h<td>&#160;<td>B.1 Diagnostics
diff --git a/type.sh b/type.sh
index 3aa5a9c..2050e4b 100755 (executable)
--- a/type.sh
+++ b/type.sh
@@ -75,6 +75,14 @@ function put(tok) {
                                state = "type"
                }
        }
+
+       # fixes
+       gsub(/restrict const/, "const", s)
+       gsub(/restrict/, "", s)
+       gsub(/\[[0-9]+\]/, "[]", s)
+       gsub(/unsigned int/, "unsigned", s)
+       gsub(/long int/, "long", s)
+
        print s
 }
 '