aboutsummaryrefslogtreecommitdiff
path: root/gcc/params-enum.h
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2015-10-13 10:08:50 +0000
committerTom de Vries <vries@gcc.gnu.org>2015-10-13 10:08:50 +0000
commitd78182cc0ce05104e2f1cd40c97de974f075479f (patch)
tree89563bd3c31401b7aa9c038829d9746e20a87a34 /gcc/params-enum.h
parent7fd103efccee2a5706df7ffafae9315995edd841 (diff)
downloadgcc-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.h39
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