if (!use_name_only && first_global_object_name)
chksum = coverage_checksum_string
(chksum, first_global_object_name);
- chksum = coverage_checksum_string
- (chksum, aux_base_name);
+ char *base_name = xstrdup (aux_base_name);
+ if (endswith (base_name, ".gk"))
+ base_name[strlen (base_name) - 3] = '\0';
+ chksum = coverage_checksum_string (chksum, base_name);
+ free (base_name);
}
/* Non-negative integers are hopefully small enough to fit in all targets.
return strncmp (str, prefix, strlen (prefix)) == 0;
}
+/* Return true if STR string ends with SUFFIX. */
+
+static inline bool
+endswith (const char *str, const char *suffix)
+{
+ size_t str_len = strlen (str);
+ size_t suffix_len = strlen (suffix);
+ if (str_len < suffix_len)
+ return false;
+
+ return memcmp (str + str_len - suffix_len, suffix, suffix_len) == 0;
+}
+
#endif /* ! GCC_SYSTEM_H */