We were notified about this problem a couple years ago from an early gcc
adopter and did an analysis. Indeed, the gcc compiler can't make the
connection that the number of clients can't exceed maximum number of
clients because both are co-dependent variables. They needed to make
the analysis a bit smarter. Well, that didn't happen.So, the easiest
solution is to add the unnecessary check to squelch the message.

Andy

On Tue, 30 May 2017, Vladimir Lomov wrote:

> @bbockelm why to drop ```-Wall```? Let me explain how I faced with these two issues from GCC and found that GCC may be right here.
>
> As for ```array-bounds``` (```XrdXrootdJob```) at first I thought that GCC is wrong here, because code looks innocent, I even prepared small example that gives zero messages from GCC though I compiled it with ```-Wall -Wextra -pedantic``` (I think it is enough to trigger maximum number of checks). Looking more closely to the code I found that method ```addClient``` assumes that it is possible (how?) to have more than ```maxClients``` clients. I think GCC here warns because it "thinks" that here possible situation when array index goes beyond the limit. I didn't dig dipper into the code and didn't try to make correct example which will give always false-positive message from GCC.
>
> The second place where GCC stops with ```nonnull``` (```XrdCnsSsi```) looks more suspicious. I would assume that someone can pass null pointer (just zero) to the ```Updt``` method.
>
> IMHO, if compilation stops due to ```-Wall``` then it is worth to check the code and to improve it.
>
> --
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly or view it on GitHub:
> https://github.com/xrootd/xrootd/issues/522#issuecomment-304820777


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/xrootd/xrootd","title":"xrootd/xrootd","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/xrootd/xrootd"}},"updates":{"snippets":[{"icon":"PERSON","message":"@abh3 in #522: We were notified about this problem a couple years ago from an early gcc \nadopter and did an analysis. Indeed, the gcc compiler can't make the \nconnection that the number of clients can't exceed maximum number of \nclients because both are co-dependent variables. They needed to make \nthe analysis a bit smarter. Well, that didn't happen.So, the easiest \nsolution is to add the unnecessary check to squelch the message.\n\nAndy\n\nOn Tue, 30 May 2017, Vladimir Lomov wrote:\n\n\u003e @bbockelm why to drop ```-Wall```? Let me explain how I faced with these two issues from GCC and found that GCC may be right here.\n\u003e\n\u003e As for ```array-bounds``` (```XrdXrootdJob```) at first I thought that GCC is wrong here, because code looks innocent, I even prepared small example that gives zero messages from GCC though I compiled it with ```-Wall -Wextra -pedantic``` (I think it is enough to trigger maximum number of checks). Looking more closely to the code I found that method ```addClient``` assumes that it is possible (how?) to have more than ```maxClients``` clients. I think GCC here warns because it \"thinks\" that here possible situation when array index goes beyond the limit. I didn't dig dipper into the code and didn't try to make correct example which will give always false-positive message from GCC.\n\u003e\n\u003e The second place where GCC stops with ```nonnull``` (```XrdCnsSsi```) looks more suspicious. I would assume that someone can pass null pointer (just zero) to the ```Updt``` method.\n\u003e\n\u003e IMHO, if compilation stops due to ```-Wall``` then it is worth to check the code and to improve it.\n\u003e\n\u003e -- \n\u003e You are receiving this because you are subscribed to this thread.\n\u003e Reply to this email directly or view it on GitHub:\n\u003e https://github.com/xrootd/xrootd/issues/522#issuecomment-304820777\n"}],"action":{"name":"View Issue","url":"https://github.com/xrootd/xrootd/issues/522#issuecomment-304935042"}}}

Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1