Server IP : 85.214.239.14 / Your IP : 3.21.247.221 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/task/2/root/proc/3/root/proc/3/root/usr/share/doc/git/contrib/coccinelle/ |
Upload File : |
// This rule finds sequences of "unused" declerations and uses of a // variable, where "unused" is defined to include only calling the // equivalent of alloc, init & free functions on the variable. @@ type T; identifier I; // STRBUF_INIT, but also e.g. STRING_LIST_INIT_DUP (so no anchoring) constant INIT_MACRO =~ "_INIT"; identifier MALLOC1 =~ "^x?[mc]alloc$"; identifier INIT_ASSIGN1 =~ "^get_worktrees$"; identifier INIT_CALL1 =~ "^[a-z_]*_init$"; identifier REL1 =~ "^[a-z_]*_(release|reset|clear|free)$"; identifier REL2 =~ "^(release|clear|free)_[a-z_]*$"; @@ ( - T I; | - T I = { 0 }; | - T I = INIT_MACRO; | - T I = MALLOC1(...); | - T I = INIT_ASSIGN1(...); ) <... when != \( I \| &I \) ( - \( INIT_CALL1 \)( \( I \| &I \), ...); | - I = \( INIT_ASSIGN1 \)(...); | - I = MALLOC1(...); ) ...> ( - \( REL1 \| REL2 \)( \( I \| &I \), ...); | - \( REL1 \| REL2 \)( \( &I \| I \) ); ) ... when != \( I \| &I \)