diff options
| author | cltang <cltang@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-16 04:28:24 +0000 |
|---|---|---|
| committer | cltang <cltang@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-16 04:28:24 +0000 |
| commit | de42969dc5294bd20fed6daa67e018a1ed7f89b2 (patch) | |
| tree | af0bfba0c0d2023977d4f9c701dbda725fc6a7a7 | |
| parent | 622a92d1765f06adc7e153840fb46e84e6fc02e9 (diff) | |
| download | ppe42-gcc-de42969dc5294bd20fed6daa67e018a1ed7f89b2.tar.gz ppe42-gcc-de42969dc5294bd20fed6daa67e018a1ed7f89b2.zip | |
2013-12-16 Chung-Lin Tang <cltang@codesourcery.com>
* opts-common.c (integral_argument): Add support for
hexadecimal command option integer arguments. Update comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206008 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/opts-common.c | 13 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 023a2291bac..8b61a445cef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-12-16 Chung-Lin Tang <cltang@codesourcery.com> + + * opts-common.c (integral_argument): Add support for + hexadecimal command option integer arguments. Update comments. + 2013-12-14 Jan Hubicka <jh@suse.cz> PR ipa/59265 diff --git a/gcc/opts-common.c b/gcc/opts-common.c index 9d186a759cb..161ddf0122c 100644 --- a/gcc/opts-common.c +++ b/gcc/opts-common.c @@ -147,7 +147,7 @@ find_opt (const char *input, unsigned int lang_mask) return match_wrong_lang; } -/* If ARG is a non-negative integer made up solely of digits, return its +/* If ARG is a non-negative decimal or hexadecimal integer, return its value, otherwise return -1. */ int @@ -161,6 +161,17 @@ integral_argument (const char *arg) if (*p == '\0') return atoi (arg); + /* It wasn't a decimal number - try hexadecimal. */ + if (arg[0] == '0' && (arg[1] == 'x' || arg[1] == 'X')) + { + p = arg + 2; + while (*p && ISXDIGIT (*p)) + p++; + + if (p != arg + 2 && *p == '\0') + return strtol (arg, NULL, 16); + } + return -1; } |

