do_merge


/* Driver for profile merge sub-command.  */
static int
do_merge (int argc, char **argv)
{
  int opt;
  const char *output_dir = 0;
  int w1 = 1, w2 = 1;
  optind = 0;
  while ((opt = getopt_long (argc, argv, "vo:w:", merge_options, NULL)) != -1)
    {
      switch (opt)
        {
        case 'v':
          verbose = true;
          gcov_set_verbose ();
          break;
        case 'o':
          output_dir = optarg;
          break;
        case 'w':
          sscanf (optarg, "%d,%d", &w1, &w2);
          if (w1 < 0 || w2 < 0)
            fatal_error (input_location, "weights need to be non-negative\n");
          break;
        default:
          merge_usage ();
        }
    }
  if (output_dir == NULL)
    output_dir = "merged_profile";
  if (argc - optind != 2)
    merge_usage ();
  return profile_merge (argv[optind], argv[optind+1], output_dir, w1, w2);
}