/// Compare pointer-typed values to NULL rather than 0 /// //# This makes an effort to choose between !x and x == NULL. !x is used //# if it has previously been used with the function used to initialize x. //# This relies on type information. More type information can be obtained //# using the option -all_includes and the option -I to specify an //# include path. // // Confidence: High // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. // URL: http://coccinelle.lip6.fr/ // Comments: Requires Coccinelle version 1.0.0-rc20 or later // Options: virtual patch virtual context virtual org virtual report @initialize:ocaml@ @@ let negtable = Hashtbl.create 101 @depends on patch@ expression *E; identifier f; @@ ( (E = f(...)) == - 0 + NULL | (E = f(...)) != - 0 + NULL | - 0 + NULL == (E = f(...)) | - 0 + NULL != (E = f(...)) ) @t1 depends on !patch@ expression *E; identifier f; position p; @@ ( (E = f(...)) == * 0@p | (E = f(...)) != * 0@p | * 0@p == (E = f(...)) | * 0@p != (E = f(...)) ) @script:python depends on org@ p << t1.p; @@ coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0") @script:python depends on report@ p << t1.p; @@ coccilib.report.print_report(p[0], "WARNING comparing pointer to 0") // Tests of returned values @s@ identifier f; expression E,E1; @@ E = f(...) ... when != E = E1 !E @script:ocaml depends on s@ f << s.f; @@ try let _ = Hashtbl.find negtable f in () with Not_found -> Hashtbl.add negtable f () @ r disable is_zero,isnt_zero exists @ expression *E; identifier f; @@ E = f(...) ... (E == 0 |E != 0 |0 == E |0 != E ) @script:ocaml@ f << r.f; @@ try let _ = Hashtbl.find negtable f in () with Not_found -> include_match false // This rule may lead to inconsistent path problems, if E is defined in two // places @ depends on patch disable is_zero,isnt_zero @ expression *E; expression E1; identifier r.f; @@ E = f(...) <... ( - E == 0 + !E | - E != 0 + E | - 0 == E + !E | - 0 != E + E ) ...> ?E = E1 @t2 depends on !patch disable is_zero,isnt_zero @ expression *E; expression E1; identifier r.f; position p1; position p2; @@ E = f(...) <... ( * E == 0@p1 | * E != 0@p2 | * 0@p1 == E | * 0@p1 != E ) ...> ?E = E1 @script:python depends on org@ p << t2.p1; @@ coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0, suggest !E") @script:python depends on org@ p << t2.p2; @@ coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0") @script:python depends on report@ p << t2.p1; @@ coccilib.report.print_report(p[0], "WARNING comparing pointer to 0, suggest !E") @script:python depends on report@ p << t2.p2; @@ coccilib.report.print_report(p[0], "WARNING comparing pointer to 0") @ depends on patch disable is_zero,isnt_zero @ expression *E; @@ ( E == - 0 + NULL | E != - 0 + NULL | - 0 + NULL == E | - 0 + NULL != E ) @ t3 depends on !patch disable is_zero,isnt_zero @ expression *E; position p; @@ ( * E == 0@p | * E != 0@p | * 0@p == E | * 0@p != E ) @script:python depends on org@ p << t3.p; @@ coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0") @script:python depends on report@ p << t3.p; @@ coccilib.report.print_report(p[0], "WARNING comparing pointer to 0") 1bae692da0001a08'>net/phonet/phonet.h
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2016-12-26 14:09:28 -0200
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-12-26 14:09:28 -0200
commit0e0694ff1a7791274946b7f51bae692da0001a08 (patch)
tree53d28f58d793c151aa870f17d38ddec6ac01ec7a /include/net/phonet/phonet.h
parent65390ea01ce678379da32b01f39fcfac4903f256 (diff)
parentc739c0a7c3c2472d7562b8f802cdce44d2597c8b (diff)
Merge branch 'patchwork' into v4l_for_linus
* patchwork: [media] s5k4ecgx: select CRC32 helper [media] dvb: avoid warning in dvb_net [media] v4l: tvp5150: Don't override output pinmuxing at stream on/off time [media] v4l: tvp5150: Fix comment regarding output pin muxing [media] v4l: tvp5150: Reset device at probe time, not in get/set format handlers [media] pctv452e: move buffer to heap, no mutex [media] media/cobalt: use pci_irq_allocate_vectors [media] cec: fix race between configuring and unconfiguring [media] cec: move cec_report_phys_addr into cec_config_thread_func [media] cec: replace cec_report_features by cec_fill_msg_report_features [media] cec: update log_addr[] before finishing configuration [media] cec: CEC_MSG_GIVE_FEATURES should abort for CEC version < 2 [media] cec: when canceling a message, don't overwrite old status info [media] cec: fix report_current_latency [media] smiapp: Make suspend and resume functions __maybe_unused [media] smiapp: Implement power-on and power-off sequences without runtime PM
Diffstat (limited to 'include/net/phonet/phonet.h')