diff options
author | marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-07-27 12:58:07 +0000 |
---|---|---|
committer | marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-07-27 12:58:07 +0000 |
commit | 8d0410c6e9f428d8e0775bd5b264cf506af15036 (patch) | |
tree | d0abe82458345300dd2046edaf27eb7b4e3b3b44 | |
parent | ca4d23b5c76894d31f7e72fa896f5075f16abe09 (diff) | |
download | gcc-8d0410c6e9f428d8e0775bd5b264cf506af15036.tar.gz |
Validate that Init value is within range defined by IntegerRange.
2017-07-27 Martin Liska <mliska@suse.cz>
* opt-functions.awk: Add validation of value of Init.
* optc-gen.awk: Pass new argument.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250625 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/opt-functions.awk | 4 | ||||
-rw-r--r-- | gcc/optc-gen.awk | 3 |
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bcfe5f8fb2e..3beab6c5251 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -5,6 +5,11 @@ 2017-07-27 Martin Liska <mliska@suse.cz> + * opt-functions.awk: Add validation of value of Init. + * optc-gen.awk: Pass new argument. + +2017-07-27 Martin Liska <mliska@suse.cz> + * auto-profile.c (autofdo_source_profile::update_inlined_ind_target): Fix wrong condition. diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk index ad0b52c0903..5ee93f12feb 100644 --- a/gcc/opt-functions.awk +++ b/gcc/opt-functions.awk @@ -314,11 +314,13 @@ function search_var_name(name, opt_numbers, opts, flags, n_opts) return "" } -function integer_range_info(range_option) +function integer_range_info(range_option, init, option) { if (range_option != "") { start = nth_arg(0, range_option); end = nth_arg(1, range_option); + if (init != "" && init != "-1" && (init < start || init > end)) + print "#error initial value " init " of '" option "' must be in range [" start "," end "]" return start ", " end } else diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk index 45b1b95e7ec..3cb0005ba40 100644 --- a/gcc/optc-gen.awk +++ b/gcc/optc-gen.awk @@ -400,7 +400,8 @@ for (i = 0; i < n_opts; i++) { " 0, %s,\n", cl_flags, cl_bit_fields) printf(" %s, %s, %s }%s\n", var_ref(opts[i], flags[i]), - var_set(flags[i]), integer_range_info(opt_args("IntegerRange", flags[i])), comma) + var_set(flags[i]), integer_range_info(opt_args("IntegerRange", flags[i]), + opt_args("Init", flags[i]), opts[i]), comma) } print "};" |