mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 01:57:26 +00:00
Merge pull request #1045 from opensourcerouting/clippy-coverity
clippy: disable unneeded autogenerated code
This commit is contained in:
commit
e1bd637370
@ -36,12 +36,14 @@ class RenderHandler(object):
|
|||||||
|
|
||||||
deref = ''
|
deref = ''
|
||||||
drop_str = False
|
drop_str = False
|
||||||
|
canfail = True
|
||||||
|
|
||||||
class StringHandler(RenderHandler):
|
class StringHandler(RenderHandler):
|
||||||
argtype = 'const char *'
|
argtype = 'const char *'
|
||||||
decl = Template('const char *$varname = NULL;')
|
decl = Template('const char *$varname = NULL;')
|
||||||
code = Template('$varname = argv[_i]->arg;')
|
code = Template('$varname = argv[_i]->arg;')
|
||||||
drop_str = True
|
drop_str = True
|
||||||
|
canfail = False
|
||||||
|
|
||||||
class LongHandler(RenderHandler):
|
class LongHandler(RenderHandler):
|
||||||
argtype = 'long'
|
argtype = 'long'
|
||||||
@ -130,6 +132,10 @@ handlers = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# core template invoked for each occurence of DEFPY.
|
# core template invoked for each occurence of DEFPY.
|
||||||
|
#
|
||||||
|
# the "#if $..." bits are there to keep this template unified into one
|
||||||
|
# common form, without requiring a more advanced template engine (e.g.
|
||||||
|
# jinja2)
|
||||||
templ = Template('''/* $fnname => "$cmddef" */
|
templ = Template('''/* $fnname => "$cmddef" */
|
||||||
DEFUN_CMD_FUNC_DECL($fnname)
|
DEFUN_CMD_FUNC_DECL($fnname)
|
||||||
#define funcdecl_$fnname static int ${fnname}_magic(\\
|
#define funcdecl_$fnname static int ${fnname}_magic(\\
|
||||||
@ -140,20 +146,31 @@ DEFUN_CMD_FUNC_DECL($fnname)
|
|||||||
funcdecl_$fnname;
|
funcdecl_$fnname;
|
||||||
DEFUN_CMD_FUNC_TEXT($fnname)
|
DEFUN_CMD_FUNC_TEXT($fnname)
|
||||||
{
|
{
|
||||||
|
#if $nonempty /* anything to parse? */
|
||||||
int _i;
|
int _i;
|
||||||
|
#if $canfail /* anything that can fail? */
|
||||||
unsigned _fail = 0, _failcnt = 0;
|
unsigned _fail = 0, _failcnt = 0;
|
||||||
|
#endif
|
||||||
$argdecls
|
$argdecls
|
||||||
for (_i = 0; _i < argc; _i++) {
|
for (_i = 0; _i < argc; _i++) {
|
||||||
if (!argv[_i]->varname)
|
if (!argv[_i]->varname)
|
||||||
continue;
|
continue;
|
||||||
_fail = 0;$argblocks
|
#if $canfail /* anything that can fail? */
|
||||||
|
_fail = 0;
|
||||||
|
#endif
|
||||||
|
$argblocks
|
||||||
|
#if $canfail /* anything that can fail? */
|
||||||
if (_fail)
|
if (_fail)
|
||||||
vty_out (vty, "%% invalid input for %s: %s\\n",
|
vty_out (vty, "%% invalid input for %s: %s\\n",
|
||||||
argv[_i]->varname, argv[_i]->arg);
|
argv[_i]->varname, argv[_i]->arg);
|
||||||
_failcnt += _fail;
|
_failcnt += _fail;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#if $canfail /* anything that can fail? */
|
||||||
if (_failcnt)
|
if (_failcnt)
|
||||||
return CMD_WARNING;
|
return CMD_WARNING;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
return ${fnname}_magic(self, vty, argc, argv$arglist);
|
return ${fnname}_magic(self, vty, argc, argv$arglist);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,6 +213,7 @@ def process_file(fn, ofd, dumpfd, all_defun):
|
|||||||
arglist = []
|
arglist = []
|
||||||
argblocks = []
|
argblocks = []
|
||||||
doc = []
|
doc = []
|
||||||
|
canfail = 0
|
||||||
|
|
||||||
def do_add(handler, varname, attr = ''):
|
def do_add(handler, varname, attr = ''):
|
||||||
argdefs.append(',\\\n\t%s %s%s' % (handler.argtype, varname, attr))
|
argdefs.append(',\\\n\t%s %s%s' % (handler.argtype, varname, attr))
|
||||||
@ -213,6 +231,8 @@ def process_file(fn, ofd, dumpfd, all_defun):
|
|||||||
if handler is None: continue
|
if handler is None: continue
|
||||||
do_add(handler, varname)
|
do_add(handler, varname)
|
||||||
code = handler.code.substitute({'varname': varname}).replace('\n', '\n\t\t\t')
|
code = handler.code.substitute({'varname': varname}).replace('\n', '\n\t\t\t')
|
||||||
|
if handler.canfail:
|
||||||
|
canfail = 1
|
||||||
strblock = ''
|
strblock = ''
|
||||||
if not handler.drop_str:
|
if not handler.drop_str:
|
||||||
do_add(StringHandler(None), '%s_str' % (varname), ' __attribute__ ((unused))')
|
do_add(StringHandler(None), '%s_str' % (varname), ' __attribute__ ((unused))')
|
||||||
@ -229,6 +249,8 @@ def process_file(fn, ofd, dumpfd, all_defun):
|
|||||||
params['argdecls'] = ''.join(argdecls)
|
params['argdecls'] = ''.join(argdecls)
|
||||||
params['arglist'] = ''.join(arglist)
|
params['arglist'] = ''.join(arglist)
|
||||||
params['argblocks'] = ''.join(argblocks)
|
params['argblocks'] = ''.join(argblocks)
|
||||||
|
params['canfail'] = canfail
|
||||||
|
params['nonempty'] = len(argblocks)
|
||||||
ofd.write(templ.substitute(params))
|
ofd.write(templ.substitute(params))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
Reference in New Issue
Block a user