@@ -629,6 +629,11 @@ llvm::Error DiagnosticSerializer::deserializeDiagnosticInfo(
629
629
630
630
llvm::Error
631
631
DiagnosticSerializer::serializeEmittedDiagnostics (llvm::raw_ostream &os) {
632
+ // If no diagnostics is produced, do not write anything so output is smaller
633
+ // without referencing any files.
634
+ if (DiagInfos.empty ())
635
+ return llvm::Error::success ();
636
+
632
637
// Convert all file backed source file into CASIDs.
633
638
for (auto &File : Files) {
634
639
if (!File.Content .empty () || !File.ContentCASID .empty ())
@@ -822,12 +827,14 @@ CachingDiagnosticsProcessor::CachingDiagnosticsProcessor(
822
827
823
828
// compress the YAML file.
824
829
llvm::SmallVector<uint8_t , 512 > Compression;
825
- if (llvm::compression::zstd::isAvailable ())
826
- llvm::compression::zstd::compress (arrayRefFromStringRef (Output),
827
- Compression);
828
- else if (llvm::compression::zlib::isAvailable ())
829
- llvm::compression::zlib::compress (arrayRefFromStringRef (Output),
830
- Compression);
830
+ if (!Output.empty ()) {
831
+ if (llvm::compression::zstd::isAvailable ())
832
+ llvm::compression::zstd::compress (arrayRefFromStringRef (Output),
833
+ Compression);
834
+ else if (llvm::compression::zlib::isAvailable ())
835
+ llvm::compression::zlib::compress (arrayRefFromStringRef (Output),
836
+ Compression);
837
+ }
831
838
832
839
// Write the uncompressed size in the end.
833
840
if (!Compression.empty ()) {
@@ -872,6 +879,10 @@ llvm::Error CachingDiagnosticsProcessor::serializeEmittedDiagnostics(
872
879
873
880
llvm::Error
874
881
CachingDiagnosticsProcessor::replayCachedDiagnostics (llvm::StringRef Buffer) {
882
+ // If empty buffer, no diagnostics to replay.
883
+ if (Buffer.empty ())
884
+ return llvm::Error::success ();
885
+
875
886
SmallVector<uint8_t , 512 > Uncompressed;
876
887
if (llvm::compression::zstd::isAvailable () ||
877
888
llvm::compression::zlib::isAvailable ()) {
0 commit comments