diff options
author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-01-09 00:50:49 +0000 |
---|---|---|
committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-01-09 00:50:49 +0000 |
commit | f404fe252328b41fa1bb7f7556710bb01e1585a4 (patch) | |
tree | e8ae9d3d6090dc578c6e59d674449af82c781c4e | |
parent | e434db179331b4d56bf9efe2e8742c0a0543ee6b (diff) | |
download | gcc-f404fe252328b41fa1bb7f7556710bb01e1585a4.tar.gz |
PR gcov-profile/61790
* gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
long long. Fallback to int64_t if host doesn't have long long and
use strtol if int64_t is long. Otherwise, use sscanf for conversion.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219372 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/gcov-tool.c | 12 |
2 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 33ba9dae10a..c38f07aca59 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-01-08 John David Anglin <danglin@gcc.gnu.org> + + PR gcov-profile/61790 + * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has + long long. Fallback to int64_t if host doesn't have long long and + use strtol if int64_t is long. Otherwise, use sscanf for conversion. + 2015-01-08 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/63989 diff --git a/gcc/gcov-tool.c b/gcc/gcov-tool.c index 1268986f454..7de175fdfcc 100644 --- a/gcc/gcov-tool.c +++ b/gcc/gcov-tool.c @@ -289,7 +289,11 @@ do_rewrite (int argc, char **argv) int opt; int ret; const char *output_dir = 0; +#ifdef HAVE_LONG_LONG long long normalize_val = 0; +#else + int64_t normalize_val = 0; +#endif float scale = 0.0; int numerator = 1; int denominator = 1; @@ -309,7 +313,13 @@ do_rewrite (int argc, char **argv) break; case 'n': if (!do_scaling) - normalize_val = atoll (optarg); +#if defined(HAVE_LONG_LONG) + normalize_val = strtoll (optarg, (char **)NULL, 10); +#elif defined(INT64_T_IS_LONG) + normalize_val = strtol (optarg, (char **)NULL, 10); +#else + sscanf (optarg, "%" SCNd64, &normalize_val); +#endif else fnotice (stderr, "scaling cannot co-exist with normalization," " skipping\n"); |