@@ -52,11 +52,12 @@ pub fn compile_input(sess: Session,
5252 output : & Option < PathBuf > ,
5353 addl_plugins : Option < Vec < String > > ,
5454 control : CompileController ) {
55- macro_rules! controller_entry_point{ ( $point: ident, $make_state: expr) => ( {
56- {
57- let state = $make_state;
58- ( control. $point. callback) ( state) ;
59- }
55+ macro_rules! controller_entry_point{ ( $point: ident, $tsess: expr, $make_state: expr) => ( {
56+ let state = $make_state;
57+ ( control. $point. callback) ( state) ;
58+
59+ $tsess. abort_if_errors( ) ;
60+
6061 if control. $point. stop == Compilation :: Stop {
6162 return ;
6263 }
@@ -70,6 +71,7 @@ pub fn compile_input(sess: Session,
7071 let krate = phase_1_parse_input ( & sess, cfg, input) ;
7172
7273 controller_entry_point ! ( after_parse,
74+ sess,
7375 CompileState :: state_after_parse( input,
7476 & sess,
7577 outdir,
@@ -96,6 +98,7 @@ pub fn compile_input(sess: Session,
9698 } ;
9799
98100 controller_entry_point ! ( after_expand,
101+ sess,
99102 CompileState :: state_after_expand( input,
100103 & sess,
101104 outdir,
@@ -109,6 +112,7 @@ pub fn compile_input(sess: Session,
109112 write_out_deps ( & sess, input, & outputs, & id[ ..] ) ;
110113
111114 controller_entry_point ! ( after_write_deps,
115+ sess,
112116 CompileState :: state_after_write_deps( input,
113117 & sess,
114118 outdir,
@@ -123,6 +127,7 @@ pub fn compile_input(sess: Session,
123127 control. make_glob_map ) ;
124128
125129 controller_entry_point ! ( after_analysis,
130+ analysis. ty_cx. sess,
126131 CompileState :: state_after_analysis( input,
127132 & analysis. ty_cx. sess,
128133 outdir,
@@ -149,6 +154,7 @@ pub fn compile_input(sess: Session,
149154 phase_5_run_llvm_passes ( & sess, & trans, & outputs) ;
150155
151156 controller_entry_point ! ( after_llvm,
157+ sess,
152158 CompileState :: state_after_llvm( input,
153159 & sess,
154160 outdir,
0 commit comments