OLD | NEW |
---|---|
1 //===-- NaClObjDump.cpp - Dump PNaCl bitcode contents ---------------------===// | 1 //===-- NaClObjDump.cpp - Dump PNaCl bitcode contents ---------------------===// |
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 #include "llvm/ADT/STLExtras.h" | 10 #include "llvm/ADT/STLExtras.h" |
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
582 // Be sure to flush any remaining errors. | 582 // Be sure to flush any remaining errors. |
583 ObjDump.Flush(); | 583 ObjDump.Flush(); |
584 } | 584 } |
585 | 585 |
586 // Returns the number of errors that were sent to the ObjDump. | 586 // Returns the number of errors that were sent to the ObjDump. |
587 unsigned GetNumErrors() { | 587 unsigned GetNumErrors() { |
588 return ObjDump.GetNumErrors(); | 588 return ObjDump.GetNumErrors(); |
589 } | 589 } |
590 | 590 |
591 /// Generates an error with the given message. | 591 /// Generates an error with the given message. |
592 bool ErrorAt(uint64_t Bit, const std::string &Message) final { | 592 bool ErrorAt(naclbitc::ErrorLevel Level, uint64_t Bit, |
593 // Use local error routine so that all errors are treated uniformly. | 593 const std::string &Message) final { |
594 ObjDump.Error(Bit) << Message << "\n"; | 594 if (Level == naclbitc::Fatal) |
jvoung (off chromium)
2015/03/06 22:30:28
How come Fatal is called out specially?
Karl
2015/03/06 22:54:20
Under the new scheme, within a bitcode parser, all
jvoung (off chromium)
2015/03/07 00:04:35
I think if (a) only this method needs to worry abo
Karl
2015/03/09 18:10:54
Ok. I was able to clean things up and remove both
| |
595 ObjDump.FatalAt(Bit, Message); | |
596 else | |
597 ObjDump.ErrorAt(Level, Bit) << Message << "\n"; | |
595 return true; | 598 return true; |
596 } | 599 } |
597 | 600 |
598 /// Flushes out objdump and then exits with fatal error. | |
599 LLVM_ATTRIBUTE_NORETURN | |
600 void Fatal() { | |
601 NaClBitcodeParser::Fatal(); | |
602 } | |
603 | |
604 /// Flushes out objdump and then exits with fatal error, using | |
605 /// the given message. | |
606 LLVM_ATTRIBUTE_NORETURN | |
607 void FatalAt(uint64_t Bit, const std::string &Message) final { | |
608 ObjDump.Fatal(Bit, Message); | |
609 } | |
610 | |
611 /// Parses the top-level module block. | 601 /// Parses the top-level module block. |
612 bool ParseBlock(unsigned BlockID) override; | 602 bool ParseBlock(unsigned BlockID) override; |
613 | 603 |
614 /// Installs the given type to the next available type index. | 604 /// Installs the given type to the next available type index. |
615 void InstallType(Type *Ty) { | 605 void InstallType(Type *Ty) { |
616 TypeIdType.push_back(Ty); | 606 TypeIdType.push_back(Ty); |
617 } | 607 } |
618 | 608 |
619 /// Returns the type associated with the given type index. | 609 /// Returns the type associated with the given type index. |
620 Type *GetType(uint32_t Index) { | 610 Type *GetType(uint32_t Index) { |
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1358 } | 1348 } |
1359 | 1349 |
1360 raw_ostream &Errors() { | 1350 raw_ostream &Errors() { |
1361 return Context->Errors(); | 1351 return Context->Errors(); |
1362 } | 1352 } |
1363 | 1353 |
1364 raw_ostream &Warnings() { | 1354 raw_ostream &Warnings() { |
1365 return Context->Warnings(); | 1355 return Context->Warnings(); |
1366 } | 1356 } |
1367 | 1357 |
1368 void Fatal() { | 1358 bool ErrorAt(naclbitc::ErrorLevel Level, uint64_t Bit, |
1369 return Context->Fatal(); | 1359 const std::string &Message) final { |
1370 } | 1360 return Context->ErrorAt(Level, Bit, Message); |
1371 | |
1372 void FatalAt(uint64_t Bit, const std::string &Message) override { | |
1373 return Context->FatalAt(Bit, Message); | |
1374 } | 1361 } |
1375 | 1362 |
1376 const std::string &GetAssemblyIndent() const { | 1363 const std::string &GetAssemblyIndent() const { |
1377 return Context->GetAssemblyIndent(); | 1364 return Context->GetAssemblyIndent(); |
1378 } | 1365 } |
1379 | 1366 |
1380 unsigned GetAssemblyNumTabs() const { | 1367 unsigned GetAssemblyNumTabs() const { |
1381 return Context->GetAssemblyNumTabs(); | 1368 return Context->GetAssemblyNumTabs(); |
1382 } | 1369 } |
1383 | 1370 |
(...skipping 2188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3572 ObjDump.Error() << "Expected 1 top level block in bitcode: Found:" | 3559 ObjDump.Error() << "Expected 1 top level block in bitcode: Found:" |
3573 << NumBlocksRead << "\n"; | 3560 << NumBlocksRead << "\n"; |
3574 ErrorsFound = true; | 3561 ErrorsFound = true; |
3575 } | 3562 } |
3576 | 3563 |
3577 ObjDump.Flush(); | 3564 ObjDump.Flush(); |
3578 return ErrorsFound || Parser.GetNumErrors() > 0; | 3565 return ErrorsFound || Parser.GetNumErrors() > 0; |
3579 } | 3566 } |
3580 | 3567 |
3581 } | 3568 } |
OLD | NEW |