<HTML>
<HEAD>
<TITLE>Re: [PATCH 2/2] Make old code pass gcc -Wall -Wextra.</TITLE>
</HEAD>
<BODY>
<FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Some of these are good, but the unused parameter warnings seem like a nuisance and somewhat wrongheaded (As long as an implementation satifies the contract of an API it doesn&#8217;t matter whether it used all or any of the parameters.). &nbsp;I think a cleanup against &#8220;&#8211;Wextra &#8211;Wunused-variable&#8217; might be more reasonable. &nbsp;(And those would be reason default CFLAGS to add to configure.ac)<BR>
&nbsp;<BR>
<BR>
On 11/8/07 1:12 AM, &quot;Tomash Brechko&quot; &lt;tomash.brechko@gmail.com&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT SIZE="2"><FONT FACE="Monaco, Courier New"><SPAN STYLE='font-size:10.0px'>---<BR>
&nbsp;trunk/server/memcached.c | &nbsp;&nbsp;26 ++++++++++++++++++--------<BR>
&nbsp;trunk/server/slabs.c &nbsp;&nbsp;&nbsp;&nbsp;| &nbsp;&nbsp;&nbsp;2 +-<BR>
&nbsp;2 files changed, 19 insertions(+), 9 deletions(-)<BR>
<BR>
diff --git a/trunk/server/memcached.c b/trunk/server/memcached.c<BR>
index 0693935..c71cf07 100644<BR>
--- a/trunk/server/memcached.c<BR>
+++ b/trunk/server/memcached.c<BR>
@@ -662,7 +662,7 @@ static int build_udp_headers(conn *c) {<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;static void out_string(conn *c, const char *str) {<BR>
- &nbsp;&nbsp;&nbsp;size_t len;<BR>
+ &nbsp;&nbsp;&nbsp;int len;<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(c != NULL);<BR>
&nbsp;<BR>
@@ -1170,7 +1170,7 @@ void process_get_command(enum command_code code,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (code == CMD_GETS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in_memory_ptr = (uint32_t)item_get(key, nkey);<BR>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(suffix,&quot; %d %d %lu\r\n&quot;, atoi(ITEM_suffix(it) + 1), it-&gt;nbytes - 2, in_memory_ptr);<BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(suffix,&quot; %d %d %u\r\n&quot;, atoi(ITEM_suffix(it) + 1), it-&gt;nbytes - 2, in_memory_ptr);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (add_iov(c, &quot;VALUE &quot;, 6) != 0 ||<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_iov(c, ITEM_key(it), it-&gt;nkey) != 0 ||<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_iov(c, suffix, strlen(suffix)) != 0 ||<BR>
@@ -1244,9 +1244,9 @@ void process_update_command(enum command_code code,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t nkey;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int flags;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t exptime;<BR>
- &nbsp;&nbsp;&nbsp;int vlen, old_vlen;<BR>
- &nbsp;&nbsp;&nbsp;uint32_t req_memory_ptr, in_memory_ptr;<BR>
- &nbsp;&nbsp;&nbsp;item *it, *old_it;<BR>
+ &nbsp;&nbsp;&nbsp;int vlen;<BR>
+ &nbsp;&nbsp;&nbsp;uint32_t req_memory_ptr = 0, in_memory_ptr;<BR>
+ &nbsp;&nbsp;&nbsp;item *it;<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(c != NULL);<BR>
&nbsp;<BR>
@@ -1613,7 +1613,7 @@ void process_manage_command(enum command_code code,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (res) {<BR>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((bucket &lt; 0) || (bucket &gt;= MAX_BUCKETS)) {<BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (bucket &gt;= MAX_BUCKETS) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (code != CMD_BG) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out_string(c, &quot;CLIENT_ERROR bucket number out of range&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>
@@ -1973,7 +1973,7 @@ static int transmit(conn *c) {<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* We've written some of the data. Remove the completed<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iovec entries from the list of pending writes. */<BR>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (m-&gt;msg_iovlen &gt; 0 &amp;&amp; res &gt;= m-&gt;msg_iov-&gt;iov_len) {<BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (m-&gt;msg_iovlen &gt; 0 &amp;&amp; (size_t)res &gt;= m-&gt;msg_iov-&gt;iov_len) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res -= m-&gt;msg_iov-&gt;iov_len;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m-&gt;msg_iovlen--;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m-&gt;msg_iov++;<BR>
@@ -2444,6 +2444,10 @@ static void set_current_time(void) {<BR>
&nbsp;}<BR>
&nbsp;<BR>
&nbsp;static void clock_handler(const int fd, const short which, void *arg) {<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(fd);<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(which);<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(arg);<BR>
+<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct timeval t = {.tv_sec = 1, .tv_usec = 0};<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static bool initialized = false;<BR>
&nbsp;<BR>
@@ -2464,6 +2468,10 @@ static void clock_handler(const int fd, const short which, void *arg) {<BR>
&nbsp;static struct event deleteevent;<BR>
&nbsp;<BR>
&nbsp;static void delete_handler(const int fd, const short which, void *arg) {<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(fd);<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(which);<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(arg);<BR>
+<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct timeval t = {.tv_sec = 5, .tv_usec = 0};<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static bool initialized = false;<BR>
&nbsp;<BR>
@@ -2627,6 +2635,8 @@ static void remove_pidfile(const char *pid_file) {<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;static void sig_handler(const int sig) {<BR>
+ &nbsp;&nbsp;&nbsp;SUPPRESS_UNUSED_WARNING(sig);<BR>
+<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;SIGINT handled.\n&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_SUCCESS);<BR>
&nbsp;}<BR>
@@ -2783,7 +2793,7 @@ int main (int argc, char **argv) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, &quot;failed to getrlimit number of files\n&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(EXIT_FAILURE);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<BR>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int maxfiles = settings.maxconns;<BR>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t maxfiles = settings.maxconns;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (rlim.rlim_cur &lt; maxfiles)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rlim.rlim_cur = maxfiles + 3;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (rlim.rlim_max &lt; rlim.rlim_cur)<BR>
diff --git a/trunk/server/slabs.c b/trunk/server/slabs.c<BR>
index 1805129..14f0dca 100644<BR>
--- a/trunk/server/slabs.c<BR>
+++ b/trunk/server/slabs.c<BR>
@@ -204,7 +204,7 @@ void *do_slabs_alloc(const size_t size) {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slabclass_t *p;<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned int id = slabs_clsid(size);<BR>
- &nbsp;&nbsp;&nbsp;if (id &lt; POWER_SMALLEST || id &gt; power_largest)<BR>
+ &nbsp;&nbsp;&nbsp;if (id &lt; POWER_SMALLEST || id &gt; (unsigned int)power_largest)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return NULL;<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = &amp;slabclass[id];<BR>
</SPAN></FONT></FONT></BLOCKQUOTE><FONT SIZE="2"><FONT FACE="Monaco, Courier New"><SPAN STYLE='font-size:10.0px'><BR>
</SPAN></FONT></FONT>
</BODY>
</HTML>