re PR gcov-profile/61790 (gcov-tool.c uses atoll)
authorJohn David Anglin <danglin@gcc.gnu.org>
Fri, 9 Jan 2015 00:50:49 +0000 (00:50 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 9 Jan 2015 00:50:49 +0000 (00:50 +0000)
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.

From-SVN: r219372

gcc/ChangeLog
gcc/gcov-tool.c

index 33ba9dae10a771a70ece9856b786a4a35955fb03..c38f07aca591c118d9dcc33fb40ea496ff8e76f1 100644 (file)
@@ -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
index 1268986f454a6eaa09f403f476b83aabfcd42116..7de175fdfcc3ed1aced5a5486ca3f5f56aca469c 100644 (file)
@@ -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");