Nick Mathewson
d6ce8527f8
tor-coccinelle.h: add a definition for EXTERN
2019-10-22 09:32:13 -04:00
Nick Mathewson
6696a5bbae
tor-coccinelle.h: add HANDLE_{DECL,IMPL}
2019-10-22 09:32:13 -04:00
Nick Mathewson
d129b503c0
tor-coccinelle.h: add EAT_SEMICOLON
2019-10-22 09:32:13 -04:00
Nick Mathewson
2e64dfea95
tor-coccinelle.h: add CHECK_SCANF
2019-10-22 09:32:13 -04:00
Nick Mathewson
7798c53c98
tor-coccinelle.h: add MOCK_DECL
2019-10-22 09:24:25 -04:00
Nick Mathewson
18f1624bbe
tor-coccinelle.h: handle SLIST and LIST.
2019-10-22 09:24:25 -04:00
Nick Mathewson
a2bb66c355
Add a "COCCI" macro that we tell coccinelle is always defined.
...
This will let us give specific in-file equivalents to given macros
or preprocessor directives, to make things parse.
2019-10-22 09:24:25 -04:00
Nick Mathewson
ea47e53252
tor-coccinelle.h: handle NS and NS_DECL.
2019-10-22 09:24:25 -04:00
Nick Mathewson
017c62000c
tor-coccinelle: handle SIMPLEQ and TAILQ better.
2019-10-22 09:24:25 -04:00
Nick Mathewson
c13c0c8999
tor-coccinelle.h: Add {EN,DIS}ABLE_GCC_WARNING.
2019-10-22 09:24:25 -04:00
Nick Mathewson
eb1260e346
tor-coccinelle: expect parentheses after HT_INITIALIZER
2019-10-22 09:24:25 -04:00
Nick Mathewson
51c2097586
try_parse.sh: add a verbose mode and a meaningful exit code.
2019-10-22 09:24:25 -04:00
Nick Mathewson
9ab96550da
document test-operator-cleanup
2019-10-22 09:24:25 -04:00
Nick Mathewson
4ab85f4928
Document tor-coccinelle.h
2019-10-09 09:23:49 -04:00
Nick Mathewson
25ed698fb8
Add some more of our trickier macros to tor-coccinelle.h
...
Note that this header file behaves a bit strangely. It is used by
coccinelle just for the purpose of knowing how to parse
difficult-to-parse stuff. It doesn't need to produce good C -- just
grammatical C.
2019-09-11 18:45:52 -04:00
Nick Mathewson
c6191983e9
Add a script to tell whether a file can be perfectly parsed by spatch
...
spatch can let us know whether a file has parsed "perfectly" or
not. The more perfect it parses, the likelier any semantic patches
are to apply. I've used this script to identify problem areas in
our code.
2019-09-11 18:44:10 -04:00
Nick Mathewson
9a101c2c0f
Add a script to run spatch with appropriate arguments
...
It's a bit tricky to remember the right incantation to get the
proper include paths and incantations for coccinelle, but without
it, coccinelle is less effective at parsing our C.
2019-09-11 18:43:16 -04:00
Taylor Yu
58ec88e806
Coccinelle scripts for control.c refactor
2019-04-30 13:18:46 -05:00
Alexander Færøy
9e1fa95920
Add Coccinelle patch for replacing NULL/non-NULL tt_assert().
...
This patch replaces tt_assert() checks for NULL/non-NULL values with
tt_ptr_op().
2017-08-24 15:22:20 -04:00
Alexander Færøy
7666cd8881
Add Coccinelle patch for replacing tt_assert() usage on integer types.
...
This patch replaces tt_assert() comparison of integers and unsigned
integers with their respective tt_int_op or tt_uint_op counterpart.
2017-08-24 15:21:43 -04:00
Alexander Færøy
3fd68b249b
Add Coccinelle patch for replacing tt_assert(0) with tt_abort().
2017-08-24 15:21:07 -04:00
Alexander Færøy
25eaf77033
Add Coccinelle patch for detecing places where CEIL_DIV should be used.
2017-08-24 15:20:11 -04:00
Alexander Færøy
7c3e980fb9
Add script for cleaning op operator usage in test files.
...
This patch adds a script written by Nick for bug #13172 to clean up the
usage of ==, !=, <, >, <=, and >= by replacing them with their symbolic
OP_* counterpart. This will ensure that a tool like Coccinelle doesn't
get confused and silently ignore large blocks of code.
2017-08-24 15:19:11 -04:00
Mansour Moufid
3ab2c865bf
Add a rule to the calloc semantic patch for argument ordering.
2014-11-02 11:54:42 -05:00
Mansour Moufid
533790ca77
The second argument to tor_calloc should be a constant.
...
Just like the conventional calloc.
2014-11-02 11:54:42 -05:00
Mansour Moufid
a746081f38
Refactor the calloc semantic patch.
...
This does not change its effects.
2014-11-02 11:54:42 -05:00
Nick Mathewson
1bb10353ff
Add coccinelle script to remove pointless callocs
2014-09-16 11:11:17 -04:00
Nick Mathewson
ef9a0d2048
Add script to detect and remove unCish malloc-then-cast pattern
...
Also, apply it.
2014-09-16 10:57:00 -04:00
Nick Mathewson
5da821a8a3
Add a simple coccinelle script to replace malloc->calloc
...
Coccinelle is a semantic patching tool that can automatically change
C code via semantic patching.
This script also replaces realloc with reallocarray as appropriate.
2014-08-13 10:39:56 -04:00