diff options
author | Tom de Vries <tom@codesourcery.com> | 2015-10-13 10:08:50 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2015-10-13 10:08:50 +0000 |
commit | d78182cc0ce05104e2f1cd40c97de974f075479f (patch) | |
tree | 89563bd3c31401b7aa9c038829d9746e20a87a34 /gcc/params-enum.h | |
parent | 7fd103efccee2a5706df7ffafae9315995edd841 (diff) | |
download | gcc-d78182cc0ce05104e2f1cd40c97de974f075479f.zip gcc-d78182cc0ce05104e2f1cd40c97de974f075479f.tar.gz gcc-d78182cc0ce05104e2f1cd40c97de974f075479f.tar.bz2 |
Support DEFPARAMENUM in params.def
2015-10-13 Tom de Vries <tom@codesourcery.com>
* Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
* params-enum.h: New file.
* opts.c (handle_param): Handle case that param arg is a string.
* params-list.h: Handle DEFPARAMENUM5 in params.def.
* params.c (find_param): New function, factored out of ...
(set_param_value): ... here.
(param_string_value_p): New function.
* params.h (struct param_info): Add value_names field.
(find_param, param_string_value_p): Declare.
From-SVN: r228755
Diffstat (limited to 'gcc/params-enum.h')
-rw-r--r-- | gcc/params-enum.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/params-enum.h b/gcc/params-enum.h new file mode 100644 index 0000000..a95e16c --- /dev/null +++ b/gcc/params-enum.h @@ -0,0 +1,39 @@ +/* params-enums.h - Run-time parameter enums. + Copyright (C) 2015 Free Software Foundation, Inc. + +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/>. */ + +#define DEFPARAM(ENUM, OPTION, HELP, DEFAULT, MIN, MAX) +#define DEFPARAMENUMNAME(ENUM) ENUM ## _KIND +#define DEFPARAMENUMVAL(ENUM, V) ENUM ## _KIND_ ## V +#define DEFPARAMENUMTERM(ENUM) ENUM ## _KIND_ ## LAST +#define DEFPARAMENUM5(ENUM, OPTION, HELP, DEFAULT, V0, V1, V2, V3, V4) \ + enum DEFPARAMENUMNAME (ENUM) \ + { \ + DEFPARAMENUMVAL (ENUM, V0), \ + DEFPARAMENUMVAL (ENUM, V1), \ + DEFPARAMENUMVAL (ENUM, V2), \ + DEFPARAMENUMVAL (ENUM, V3), \ + DEFPARAMENUMVAL (ENUM, V4), \ + DEFPARAMENUMTERM (ENUM) \ + }; +#include "params.def" +#undef DEFPARAMENUM5 +#undef DEFPARAMENUMTERM +#undef DEFPARAMENUMVAL +#undef DEFPARAMENUMNAME +#undef DEFPARAM |