Index: lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp |
diff --git a/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp b/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp |
index da2907b1a9ee44af02ac208e9d5321f59451f7af..49f3cc28cef22c64751aa26497a1c86fa8b5b24b 100644 |
--- a/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp |
+++ b/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp |
@@ -377,6 +377,12 @@ bool WriteState::emitRecord(NaClBitstreamWriter &Writer, |
if (!Flags.getTryToRecover()) |
return false; |
} |
+ if (atOutermostScope()) { |
+ // Recover by ignoring abbreviation definition. |
+ RecoverableError() << "Defining abbreviation outside block: " |
+ << Record << "\n"; |
+ return Flags.getTryToRecover(); |
+ } |
NaClBitCodeAbbrev *Abbrev = buildAbbrev(Record); |
if (Abbrev == nullptr) { |
markCurrentBlockWithOmittedAbbreviations(); |