Am 18.02.2016 um 19:07 schrieb John Baldwin:
> On Thursday, February 18, 2016 03:23:26 PM Stefan Esser wrote:
>> Author: se
>> Date: Thu Feb 18 15:23:25 2016
>> New Revision: 295760
>> URL: https://svnweb.freebsd.org/changeset/base/295760
>>
>> Log:
>>   Make WARNS=6 safe.
>>   
>>   Tested with Clang 3.7.1, GCC 4.2.1 and GCC 4.8.5 on amd64.
> 
> Thanks.
> 
>> Modified: head/usr.sbin/pciconf/cap.c
>> ==============================================================================
>> --- head/usr.sbin/pciconf/cap.c      Thu Feb 18 15:12:52 2016        
>> (r295759)
>> +++ head/usr.sbin/pciconf/cap.c      Thu Feb 18 15:23:25 2016        
>> (r295760)
>> @@ -120,6 +120,9 @@ static void
>>  cap_vpd(int fd, struct pci_conf *p, uint8_t ptr)
>>  {
>>  
>> +    (void)fd;       /* UNUSED */
>> +    (void)p;        /* UNUSED */
>> +    (void)ptr;      /* UNUSED */
>>      printf("VPD");
>>  }
> 
> I think we prefer __unused in the parameter declaration instead?  That is:

Since I was not sure about the best way to silence this warning, I had
looked at the mail archive and found a mail thread from July 2012 with
subject "(void)foo or __unused foo ?". The cast to void seemed to be
the most portable method, but in fact I prefer the __unused modifier
myself.

> cap_vpd(int fd __unused, struct pci_conf *p __unused, uint8_t ptr __unused)

Yes, I'll commit that version in a minute.

>> @@ -172,6 +175,7 @@ cap_pcix(int fd, struct pci_conf *p, uin
>>      }
>>      if ((p->pc_hdr & PCIM_HDRTYPE) == 1)
>>              return;
>> +    max_burst_read = 0;
>>      switch (status & PCIXM_STATUS_MAX_READ) {
>>      case PCIXM_STATUS_MAX_READ_512:
>>              max_burst_read = 512;
> 
> Compilers are simply not smart enough. :-P

Well, clang-3.7.1 in -CURRENT is ...

But both gcc-4.2.1 and gcc-4.8.5 warn about a possibly uninitialized
variable.

I could have changed the last case selector into "default" to silence
the warning without need for an initializer before the switch statement,
but that would be too ugly and misleading.

>> Modified: head/usr.sbin/pciconf/pciconf.c
>> ==============================================================================
>> --- head/usr.sbin/pciconf/pciconf.c  Thu Feb 18 15:12:52 2016        
>> (r295759)
>> +++ head/usr.sbin/pciconf/pciconf.c  Thu Feb 18 15:23:25 2016        
>> (r295760)
>> @@ -913,7 +915,8 @@ parsesel(const char *str)
>>              ep += 3;
>>              i = 0;
>>              do {
>> -                    selarr[i++] = strtoul(ep, &ep, 10);
>> +              selarr[i++] = strtoul(ep, &eppos, 10);
>> +              ep = eppos;
>>              } while ((*ep == ':' || *ep == '.') && *++ep != '\0' && i < 4);
> 
> This is now indented oddly (2 spaces instead of a tab?).

Sorry, the pciconf sources do not comply with "style" and I'm to blame,
since I committed the initial version nearly 20 years ago ...

But you are correct, I got even the wrong indentation wrong ;-)

Thank you for the review and your comments, I'll commit a fixed version
now.

Best regards, STefan
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to