[PGO] Handle and report overflow during profile merge for all types of data
[oota-llvm.git] / tools / llvm-profdata / llvm-profdata.cpp
index 4fa36c4b0b6a400bcd32c3bad1e2b9b824deb405..71768f92382a584c4049296e552ab9f65cbccb5a 100644 (file)
@@ -180,7 +180,11 @@ static void mergeSampleProfile(const WeightedFileVector &Inputs,
          I != E; ++I) {
       StringRef FName = I->first();
       FunctionSamples &Samples = I->second;
-      ProfileMap[FName].merge(Samples, Input.Weight);
+      sampleprof_error Result = ProfileMap[FName].merge(Samples, Input.Weight);
+      if (Result != sampleprof_error::success) {
+        std::error_code EC = make_error_code(Result);
+        handleMergeWriterError(EC, Input.Filename, FName);
+      }
     }
   }
   Writer->write(ProfileMap);