[asterisk-dev] [Code Review] 4550: clang compiler warning: --dev-mode and -Wparentheses-equality

Diederik de Groot reviewboard at asterisk.org
Sat Apr 18 06:26:04 CDT 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4550/
-----------------------------------------------------------

(Updated April 18, 2015, 1:26 p.m.)


Status
------

This change has been discarded.


Review request for Asterisk Developers.


Bugs: ASTERISK-24917
    https://issues.asterisk.org/jira/browse/ASTERISK-24917


Repository: Asterisk


Description
-------

clang's static analyzer will throw quite a number warnings / errors during compilation, some of which can be very helpfull in finding corner-case bugs.

clang compiler warning:--dev-mode and -Wparentheses-equality

include/asterisk/linkedlists.h:450
==================================
Got rid of the extraneous "()" in the comparison to NULL by negating the comparison

include/asterisk/vector.h:261
=============================
Removed the extraneous "()". Not particularly happy about this though as they where used to keep this macro encapsulated (Does however not cause any compile issues)

Another possible solutions would be to double negate the comparison !((elem) != (value)) which would keep everything encapsulated, but does result in a double negative, which is ugly as well.

main/format_cap.c:467
=====================
Removed the extraneous "()". Not particularly happy about this though as they where used to keep this macro encapsulated (Does however not cause any compile issues)

Another possible solutions would be to double negate the comparison !((elem)->format != (value)) which would keep everything encapsulated, but does result in a double negative, which is ugly as well.

main/format_cap.c:492
=====================
Because of the () where removed previously, they are now needed here.

main/stasis_message_router.c:82
===============================
Removed the extraneous "()". Not particularly happy about this though as they where used to keep this macro encapsulated (Does however not cause any compile issues)

Another possible solutions would be to double negate the comparison !((elem).message_type != (value)) which would keep everything encapsulated, but does result in a double negative, which is ugly as well.

main/stdtime/localtime.c:197/208
================================
Removed the extraneous "()". Not particularly happy about this though as they where used to keep this macro encapsulated (Does however not cause any compile issues)

Another possible solutions would be to double negate the comparison !((sp)->wd[0] != SP_STACK_FLAG) which would keep everything encapsulated, but does result in a double negative, which is ugly as well.

more of the same for
====================
include/asterisk/dlinkedlists.h:422/431/469
main/astobj2_hash.c:768

---------
Maybe one of you has a better/nicer solution.


Diffs
-----

  /branches/13/tests/test_linkedlists.c 433444 
  /branches/13/main/stdtime/localtime.c 433444 
  /branches/13/main/stasis_message_router.c 433444 
  /branches/13/main/format_cap.c 433444 
  /branches/13/main/astobj2_hash.c 433444 
  /branches/13/include/asterisk/vector.h 433444 
  /branches/13/include/asterisk/linkedlists.h 433444 
  /branches/13/include/asterisk/dlinkedlists.h 433444 

Diff: https://reviewboard.asterisk.org/r/4550/diff/


Testing
-------


Thanks,

Diederik de Groot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20150418/ad06ae4f/attachment.html>


More information about the asterisk-dev mailing list