aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Support/Error.cpp
blob: f18cc45bd6ff7de82cef6d721b480b6ea3651fc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// SPDX-License-Identifier: GPL-3.0-or-later

#include "rcc/Support/Error.h"

namespace rcc {

std::string_view getErrorCodeName(ErrorCode Code) noexcept {
  switch (Code) {
  case ErrorCode::InvalidArgument:
    return "invalid argument";
  case ErrorCode::ParseError:
    return "parse error";
  case ErrorCode::VerificationError:
    return "verification error";
  case ErrorCode::Unsupported:
    return "unsupported";
  case ErrorCode::RegisterAllocationFailed:
    return "register allocation failed";
  case ErrorCode::FrameLayoutFailed:
    return "frame layout failed";
  case ErrorCode::IoError:
    return "I/O error";
  case ErrorCode::InternalError:
    return "internal error";
  }

  return "unknown error";
}

Error::Error(ErrorCode Code, std::string Message) : Code(Code), Message(std::move(Message)) {}

} // namespace rcc