}
const std::error_category &BitcodeErrorCategory();
- enum class BitcodeError { InvalidBitcodeSignature = 1, CorruptedBitcode };
+ enum class BitcodeError { CorruptedBitcode = 1 };
inline std::error_code make_error_code(BitcodeError E) {
return std::error_code(static_cast<int>(E), BitcodeErrorCategory());
}
- class BitcodeDiagnosticInfo : public DiagnosticInfo {
- const Twine &Msg;
- std::error_code EC;
-
- public:
- BitcodeDiagnosticInfo(std::error_code EC, DiagnosticSeverity Severity,
- const Twine &Msg);
- void print(DiagnosticPrinter &DP) const override;
- std::error_code getError() const { return EC; }
-
- static bool classof(const DiagnosticInfo *DI) {
- return DI->getKind() == DK_Bitcode;
- }
- };
-
} // End llvm namespace
namespace std {
std::string message(int IE) const override {
BitcodeError E = static_cast<BitcodeError>(IE);
switch (E) {
- case BitcodeError::InvalidBitcodeSignature:
- return "Invalid bitcode signature";
case BitcodeError::CorruptedBitcode:
return "Corrupted bitcode";
}
}
static void diagnosticHandler(const DiagnosticInfo &DI) {
- if (const auto *BDI = dyn_cast<BitcodeDiagnosticInfo>(&DI)) {
- std::error_code EC = BDI->getError();
- if (EC == BitcodeError::InvalidBitcodeSignature)
- return;
- }
-
std::string ErrStorage;
{
raw_string_ostream OS(ErrStorage);