Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Side by Side Diff: lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp

Issue 1156103003: Initial implementation of a record-level bitcode fuzzer. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@fuzz
Patch Set: Fix nits. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- NaClBitcodeMungeWriter.cpp - Write munged bitcode --------*- C++ -*-===// 1 //===- NaClBitcodeMungeWriter.cpp - Write munged bitcode --------*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // Implements method NaClMungedBitcode.write(), which writes out a munged 10 // Implements method NaClMungedBitcode.write(), which writes out a munged
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 RecoverableError() << "Ignoring abbreviation: " << Record << "\n"; 370 RecoverableError() << "Ignoring abbreviation: " << Record << "\n";
371 return Flags.getTryToRecover(); 371 return Flags.getTryToRecover();
372 } 372 }
373 if (Record.Abbrev != naclbitc::DEFINE_ABBREV) { 373 if (Record.Abbrev != naclbitc::DEFINE_ABBREV) {
374 RecoverableError() 374 RecoverableError()
375 << "Uses illegal abbreviation index in define abbreviation record: " 375 << "Uses illegal abbreviation index in define abbreviation record: "
376 << Record << "\n"; 376 << Record << "\n";
377 if (!Flags.getTryToRecover()) 377 if (!Flags.getTryToRecover())
378 return false; 378 return false;
379 } 379 }
380 if (atOutermostScope()) {
381 // Recover by ignoring abbreviation definition.
382 RecoverableError() << "Defining abbreviation outside block: "
383 << Record << "\n";
384 return Flags.getTryToRecover();
385 }
380 NaClBitCodeAbbrev *Abbrev = buildAbbrev(Record); 386 NaClBitCodeAbbrev *Abbrev = buildAbbrev(Record);
381 if (Abbrev == nullptr) { 387 if (Abbrev == nullptr) {
382 markCurrentBlockWithOmittedAbbreviations(); 388 markCurrentBlockWithOmittedAbbreviations();
383 return Flags.getTryToRecover(); 389 return Flags.getTryToRecover();
384 } 390 }
385 if (getCurWriteBlockID() == naclbitc::BLOCKINFO_BLOCK_ID) { 391 if (getCurWriteBlockID() == naclbitc::BLOCKINFO_BLOCK_ID) {
386 Writer.EmitBlockInfoAbbrev(SetBID, Abbrev); 392 Writer.EmitBlockInfoAbbrev(SetBID, Abbrev);
387 } else { 393 } else {
388 Writer.EmitAbbrev(Abbrev); 394 Writer.EmitAbbrev(Abbrev);
389 } 395 }
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 NaClWriteHeader(Writer, true); 568 NaClWriteHeader(Writer, true);
563 } 569 }
564 for (const NaClBitcodeAbbrevRecord &Record : *this) { 570 for (const NaClBitcodeAbbrevRecord &Record : *this) {
565 if (!State.emitRecord(Writer, Record)) 571 if (!State.emitRecord(Writer, Record))
566 break; 572 break;
567 } 573 }
568 bool RecoverSilently = 574 bool RecoverSilently =
569 State.Results.NumErrors > 0 && !Flags.getTryToRecover(); 575 State.Results.NumErrors > 0 && !Flags.getTryToRecover();
570 return State.finish(Writer, RecoverSilently); 576 return State.finish(Writer, RecoverSilently);
571 } 577 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698