diff options
author | Martin Liska <mliska@suse.cz> | 2018-09-25 09:08:44 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-09-25 07:08:44 +0000 |
commit | 4cac9d00e93a40c7b19f0060b8b4f8f5b3e4d676 (patch) | |
tree | 804deaf68b6ca4cd2870eaba57b823bbb2cc43c2 /contrib | |
parent | d5c4f75ddbf2994b6c462ed4b624ab5fcf23674f (diff) |
Document all param values and remove defaults (PR middle-end/86078).
2018-09-25 Martin Liska <mliska@suse.cz>
PR middle-end/86078
* doc/invoke.texi: Document all parameters and remove default
of the parameters.
2018-09-25 Martin Liska <mliska@suse.cz>
PR middle-end/86078
* check-params-in-docs.py: New file.
From-SVN: r264558
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/ChangeLog | 5 | ||||
-rwxr-xr-x | contrib/check-params-in-docs.py | 76 |
2 files changed, 81 insertions, 0 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 21139150c9f..14b8ee25d7e 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,8 @@ +2018-09-25 Martin Liska <mliska@suse.cz> + + PR middle-end/86078 + * check-params-in-docs.py: New file. + 2018-08-17 Jojo <jijie_rong@c-sky.com> Huibin Wang <huibin_wang@c-sky.com> Sandra Loosemore <sandra@codesourcery.com> diff --git a/contrib/check-params-in-docs.py b/contrib/check-params-in-docs.py new file mode 100755 index 00000000000..eb36f4b8654 --- /dev/null +++ b/contrib/check-params-in-docs.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +# +# Find missing and extra parameters in documentation compared to +# output of: gcc --help=params. +# +# This file is part of GCC. +# +# GCC is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 3, or (at your option) any later +# version. +# +# GCC is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. */ +# +# +# + +import sys +import json +import argparse + +from itertools import * + +def get_param_tuple(line): + line = line.strip() + i = line.find(' ') + return (line[:i], line[i:].strip()) + +parser = argparse.ArgumentParser() +parser.add_argument('texi_file') +parser.add_argument('params_output') + +args = parser.parse_args() + +params = {} + +for line in open(args.params_output).readlines(): + if line.startswith(' '): + r = get_param_tuple(line) + params[r[0]] = r[1] + +# Find section in .texi manual with parameters +texi = ([x.strip() for x in open(args.texi_file).readlines()]) +texi = dropwhile(lambda x: not 'item --param' in x, texi) +texi = takewhile(lambda x: not '@node Instrumentation Options' in x, texi) +texi = list(texi)[1:] + +token = '@item ' +texi = [x[len(token):] for x in texi if x.startswith(token)] +sorted_texi = sorted(texi) + +texi_set = set(texi) +params_set = set(params.keys()) + +extra = texi_set - params_set +if len(extra): + print('Extra:') + print(extra) + +missing = params_set - texi_set +if len(missing): + print('Missing:') + for m in missing: + print('@item ' + m) + print(params[m]) + print() + +if texi != sorted_texi: + print('WARNING: not sorted alphabetically!') |