diff --git a/priv/host-generic/host_regs.h b/priv/host-generic/host_regs.h
index 35fcda0..c3c9735 100644
--- a/priv/host-generic/host_regs.h
+++ b/priv/host-generic/host_regs.h
@@ -195,7 +195,11 @@
    /* Return an insn to spill/restore a real reg to a spill slot
       offset. */
    HInstr* (*genSpill) ( HReg, Int ),
-   HInstr* (*genReload) ( HReg, Int )
+   HInstr* (*genReload) ( HReg, Int ),
+
+   /* For debug printing only. */
+   void (*ppInstr) ( HInstr* ),
+   void (*ppReg) ( HReg )
 );
 
 
diff --git a/priv/main/vex_globals.c b/priv/main/vex_globals.c
index ff4141c..0eac1eb 100644
--- a/priv/main/vex_globals.c
+++ b/priv/main/vex_globals.c
@@ -18,6 +18,7 @@
 Bool vex_initdone = False;
 
 /* failure exit function */
+__attribute__ ((noreturn))
 void (*vex_failure_exit) ( void ) = NULL;
 
 /* logging output function */
diff --git a/priv/main/vex_globals.h b/priv/main/vex_globals.h
index 2c40e37..3f77d97 100644
--- a/priv/main/vex_globals.h
+++ b/priv/main/vex_globals.h
@@ -19,6 +19,7 @@
 extern Bool vex_initdone;
 
 /* failure exit function */
+__attribute__ ((noreturn))
 extern void (*vex_failure_exit) ( void );
 
 /* logging output function */
diff --git a/priv/main/vex_main.c b/priv/main/vex_main.c
index c9f4b4b..9d64e81 100644
--- a/priv/main/vex_main.c
+++ b/priv/main/vex_main.c
@@ -22,6 +22,7 @@
 
 void LibVEX_Init (
    /* failure exit function */
+   __attribute__ ((noreturn))
    void (*failure_exit) ( void ),
    /* logging output function */
    void (*log_bytes) ( Char*, Int nbytes ),
@@ -83,6 +84,8 @@
    void (*mapRegs) (HRegRemap*, HInstr*);
    HInstr* (*genSpill) ( HReg, Int );
    HInstr* (*genReload) ( HReg, Int );
+   void (*ppInstr) ( HInstr* );
+   void (*ppReg) ( HReg );
    HInstrArray* (*iselBB) ( IRBB* );
    IRBB* (*bbToIR) ( Char*, Addr64, Int*, Bool(*)(Addr64) );
 
@@ -104,6 +107,8 @@
          mapRegs     = (void(*)(HRegRemap*,HInstr*)) mapRegs_X86Instr;
          genSpill    = (HInstr*(*)(HReg,Int)) genSpill_X86;
          genReload   = (HInstr*(*)(HReg,Int)) genReload_X86;
+         ppInstr     = (void(*)(HInstr*)) ppX86Instr;
+         ppReg       = (void(*)(HReg)) ppHRegX86;
          iselBB      = iselBB_X86;
          break;
       default:
@@ -140,7 +145,8 @@
    rcode = doRegisterAllocation ( vcode, available_real_regs,
                   	       	  n_available_real_regs,
 			          isMove, getRegUsage, mapRegs, 
-			          genSpill, genReload );
+			          genSpill, genReload,
+				  ppInstr, ppReg );
 
    /* Assemble, etc. */
    LibVEX_Clear(True);
diff --git a/pub/libvex.h b/pub/libvex.h
index 705f922..c797f74 100644
--- a/pub/libvex.h
+++ b/pub/libvex.h
@@ -23,6 +23,7 @@
 
 extern void LibVEX_Init (
    /* failure exit function */
+   __attribute__ ((noreturn))
    void (*failure_exit) ( void ),
    /* logging output function */
    void (*log_bytes) ( Char*, Int nbytes ),
diff --git a/test_main.c b/test_main.c
index a68f126..371594d 100644
--- a/test_main.c
+++ b/test_main.c
@@ -18,6 +18,7 @@
 #include "libvex_basictypes.h"
 #include "libvex.h"
 
+__attribute__ ((noreturn))
 void failure_exit ( void )
 {
    fprintf(stdout, "VEX did failure_exit.  Bye.\n");
