X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fgcov-iov.c;h=de2c322972996b24f5053e395c188eef47452298;hb=17052c8f8f63239deccec6d06ff1d9a9ebfc4640;hp=fd103c4ddd4fea791dcf5d7c9b9ffc2d153386ca;hpb=805e22b2051e9c6a75377ea6599654d7415da483;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/gcov-iov.c b/gcc/gcov-iov.c index fd103c4ddd4..de2c3229729 100644 --- a/gcc/gcov-iov.c +++ b/gcc/gcov-iov.c @@ -1,13 +1,13 @@ /* Generate gcov version string from version.c. See gcov-io.h for description of how the version string is generated. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc. Contributed by Nathan Sidwell - + This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later +Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY @@ -16,55 +16,56 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +along with GCC; see the file COPYING3. If not see +. */ -#include "bconfig.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "version.c" /* We want the actual string. */ +#include +#include -int main PARAMS ((int, char **)); +/* Command line arguments are the base GCC version and the development + phase (the latter may be an empty string). */ int -main (argc, argv) - int argc ATTRIBUTE_UNUSED; - char **argv; +main (int argc, char **argv) { - unsigned version = 0; + unsigned int version = 0; unsigned char v[4]; - unsigned ix; - char const *ptr = version_string; - unsigned major, minor = 0; - char s = 0; + unsigned int ix; + unsigned long major; + unsigned long minor = 0; + char phase = 0; + char *ptr; + + if (argc != 3) + { + fprintf (stderr, "usage: %s 'version' 'phase'\n", argv[0]); + return 1; + } + + ptr = argv[1]; + major = strtoul (ptr, &ptr, 10); - major = atoi (ptr); - while (*ptr && *ptr != '.') - ptr++; - if (*ptr) - minor = atoi (ptr + 1); - while (*ptr) - if (*ptr++ == '(') - { - s = *ptr; - break; - } + if (*ptr == '.') + minor = strtoul (ptr + 1, 0, 10); + + phase = argv[2][0]; + if (phase == '\0') + phase = '*'; v[0] = (major < 10 ? '0' : 'A' - 10) + major; v[1] = (minor / 10) + '0'; v[2] = (minor % 10) + '0'; - v[3] = s ? s : '*'; - + v[3] = phase; + for (ix = 0; ix != 4; ix++) version = (version << 8) | v[ix]; printf ("/* Generated automatically by the program `%s'\n", argv[0]); - printf (" from `%s'. */\n", version_string); + printf (" from `%s (%lu %lu) and %s (%c)'. */\n", + argv[1], major, minor, argv[2], phase); printf ("\n"); - printf ("#define GCOV_VERSION ((unsigned)%#08x) /* %.4s */\n", + printf ("#define GCOV_VERSION ((gcov_unsigned_t)%#08x) /* %.4s */\n", version, v); - + return 0; }