libgcc/ChangeLog:
	PR gcov-profile/98739
	* libgcov.h (gcov_topn_add_value): Do not train when
	we have a merged profile with a negative number of total
	value.
                     int use_atomic, int increment_total)
 {
   if (increment_total)
-    gcov_counter_add (&counters[0], 1, use_atomic);
+    {
+      /* In the multi-threaded mode, we can have an already merged profile
+        with a negative total value.  In that case, we should bail out.  */
+      if (counters[0] < 0)
+       return 0;
+      gcov_counter_add (&counters[0], 1, use_atomic);
+    }
 
   struct gcov_kvp *prev_node = NULL;
   struct gcov_kvp *minimal_node = NULL;