aboutsummaryrefslogtreecommitdiff
path: root/gcc/optc-gen.awk
diff options
context:
space:
mode:
authorManuel López-Ibáñez <manu@gcc.gnu.org>2014-09-04 15:13:40 +0000
committerManuel López-Ibáñez <manu@gcc.gnu.org>2014-09-04 15:13:40 +0000
commit2b71f4a4f8515c5d0919fc5c220f427e7c837e7f (patch)
treec7538be5564ae0acb2315138a89ce1f3cc020b22 /gcc/optc-gen.awk
parent6bf5ce8f85c50886913d6f26a248f4c4c1445bd2 (diff)
downloadgcc-2b71f4a4f8515c5d0919fc5c220f427e7c837e7f.zip
gcc-2b71f4a4f8515c5d0919fc5c220f427e7c837e7f.tar.gz
gcc-2b71f4a4f8515c5d0919fc5c220f427e7c837e7f.tar.bz2
options.texi: Document that Var and Init are required if CPP is given.
gcc/ChangeLog: 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> * doc/options.texi: Document that Var and Init are required if CPP is given. * optc-gen.awk: Require Var and Init if CPP is given. * common.opt (Wpedantic): Use Init. libcpp/ChangeLog: 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and CPP_W flags. * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC. * init.c (cpp_create_reader): Do not init to -1 here. * expr.c (num_binary_op): Use cpp_pedwarning. gcc/c-family/ChangeLog: 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> * c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels, Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic, (Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var and Init. * c-opts.c (c_common_handle_option): Do not handle here. (sanitize_cpp_opts): Likewise. * c-common.c (struct reason_option_codes_t): Handle CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC. gcc/testsuite/ChangeLog: 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> * gcc.dg/cpp/endif-pedantic2.c: More general options do not override specific ones, but specific ones do. From-SVN: r214904
Diffstat (limited to 'gcc/optc-gen.awk')
-rw-r--r--gcc/optc-gen.awk19
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index ef80c99..ecb225c 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -500,11 +500,20 @@ for (i = 0; i < n_opts; i++) {
}
cpp_option = nth_arg(0, opt_args("CPP", flags[i]));
- opt_var_name = var_name(flags[i]);
- if (cpp_option != "" && opt_var_name != "") {
- print " case " opt_enum(opts[i]) ":"
- print " cpp_opts->" cpp_option " = opts->x_" opt_var_name ";"
- print " break;"
+ if (cpp_option != "") {
+ opt_var_name = var_name(flags[i]);
+ init = opt_args("Init", flags[i])
+ if (opt_var_name != "" && init != "") {
+ print " case " opt_enum(opts[i]) ":"
+ print " cpp_opts->" cpp_option " = opts->x_" opt_var_name ";"
+ print " break;"
+ } else if (opt_var_name == "" && init == "") {
+ print "#error CPP() requires setting Init() and Var() for " opts[i]
+ } else if (opt_var_name != "") {
+ print "#error CPP() requires setting Init() for " opts[i]
+ } else {
+ print "#error CPP() requires setting Var() for " opts[i]
+ }
}
}
print " default: "