| Index: src/IceTranslator.h
 | 
| diff --git a/src/IceTranslator.h b/src/IceTranslator.h
 | 
| index a0c04098c3f3f73a403ac65b2d7bb45f099af308..630997b798f53f6e0d9e5aa2e63aba68452ef898 100644
 | 
| --- a/src/IceTranslator.h
 | 
| +++ b/src/IceTranslator.h
 | 
| @@ -15,8 +15,6 @@
 | 
|  #ifndef SUBZERO_SRC_ICETRANSLATOR_H
 | 
|  #define SUBZERO_SRC_ICETRANSLATOR_H
 | 
|  
 | 
| -#include <memory>
 | 
| -
 | 
|  namespace llvm {
 | 
|  class Module;
 | 
|  }
 | 
| @@ -38,24 +36,25 @@ class Translator {
 | 
|  public:
 | 
|    typedef std::vector<VariableDeclaration *> VariableDeclarationListType;
 | 
|  
 | 
| -  Translator(GlobalContext *Ctx, const ClFlags &Flags)
 | 
| -      : Ctx(Ctx), Flags(Flags), ErrorStatus(0) {}
 | 
| -
 | 
| +  Translator(GlobalContext *Ctx, const ClFlags &Flags);
 | 
|    ~Translator();
 | 
| -  bool getErrorStatus() const { return ErrorStatus; }
 | 
| +  const ErrorCode &getErrorStatus() const { return ErrorStatus; }
 | 
|  
 | 
|    GlobalContext *getContext() const { return Ctx; }
 | 
|  
 | 
|    const ClFlags &getFlags() const { return Flags; }
 | 
|  
 | 
|    /// Translates the constructed ICE function Fcn to machine code.
 | 
| -  /// Takes ownership of Fcn. Note: As a side effect, Field Func is
 | 
| -  /// set to Fcn.
 | 
| -  void translateFcn(Cfg *Fcn);
 | 
| +  /// Takes ownership of Func.
 | 
| +  void translateFcn(Cfg *Func);
 | 
|  
 | 
|    /// Emits the constant pool.
 | 
|    void emitConstants();
 | 
|  
 | 
| +  /// If there was an error during bitcode reading/parsing, copy the
 | 
| +  /// error code into the GlobalContext.
 | 
| +  void transferErrorCode() const;
 | 
| +
 | 
|    /// Lowers the given list of global addresses to target. Generates
 | 
|    /// list of corresponding variable declarations.
 | 
|    void lowerGlobals(const VariableDeclarationListType &VariableDeclarations);
 | 
| @@ -72,18 +71,9 @@ public:
 | 
|  protected:
 | 
|    GlobalContext *Ctx;
 | 
|    const ClFlags &Flags;
 | 
| -  // The exit status of the translation. False is successful. True
 | 
| -  // otherwise.
 | 
| -  bool ErrorStatus;
 | 
| -  // Ideally, Func would be inside the methods that converts IR to
 | 
| -  // functions.  However, emitting the constant pool requires a valid
 | 
| -  // Cfg object, so we need to defer deleting the last non-empty Cfg
 | 
| -  // object to emit the constant pool (via emitConstants). TODO:
 | 
| -  // Since all constants are globally pooled in the GlobalContext
 | 
| -  // object, change all Constant related functions to use
 | 
| -  // GlobalContext instead of Cfg, and then make emitConstantPool use
 | 
| -  // that.
 | 
| -  std::unique_ptr<Cfg> Func;
 | 
| +  std::unique_ptr<TargetGlobalLowering> GlobalLowering;
 | 
| +  // Exit status of the translation. False is successful. True otherwise.
 | 
| +  ErrorCode ErrorStatus;
 | 
|  };
 | 
|  
 | 
|  } // end of namespace Ice
 | 
| 
 |