Esempio n. 1
0
void Slang::createDiagnostic() {
  mDiagClient = new DiagnosticBuffer();
  mDiagIDs = new clang::DiagnosticIDs();
  mDiagnostics = new clang::Diagnostic(mDiagIDs, mDiagClient, true);
  initDiagnostic();
  return;
}
Esempio n. 2
0
void Slang::init(const std::string &Triple, const std::string &CPU,
                 const std::vector<std::string> &Features,
                 clang::DiagnosticsEngine *DiagEngine,
                 DiagnosticBuffer *DiagClient) {
  if (mInitialized)
    return;

  mDiagEngine = DiagEngine;
  mDiagClient = DiagClient;
  mDiag.reset(new clang::Diagnostic(mDiagEngine));
  initDiagnostic();
  llvm::install_fatal_error_handler(LLVMErrorHandler, mDiagEngine);

  createTarget(Triple, CPU, Features);
  createFileManager();
  createSourceManager();

  mInitialized = true;
}