@@ -51,11 +51,12 @@ pub fn compile_input(sess: Session,
5151 output : & Option < Path > ,
5252 addl_plugins : Option < Vec < String > > ,
5353 control : CompileController ) {
54- macro_rules! controller_entry_point{ ( $point: ident, $make_state: expr) => ( {
55- {
56- let state = $make_state;
57- ( control. $point. callback) ( state) ;
58- }
54+ macro_rules! controller_entry_point{ ( $point: ident, $tsess: expr, $make_state: expr) => ( {
55+ let state = $make_state;
56+ ( control. $point. callback) ( state) ;
57+
58+ $tsess. abort_if_errors( ) ;
59+
5960 if control. $point. stop == Compilation :: Stop {
6061 return ;
6162 }
@@ -69,6 +70,7 @@ pub fn compile_input(sess: Session,
6970 let krate = phase_1_parse_input ( & sess, cfg, input) ;
7071
7172 controller_entry_point ! ( after_parse,
73+ sess,
7274 CompileState :: state_after_parse( input,
7375 & sess,
7476 outdir,
@@ -95,6 +97,7 @@ pub fn compile_input(sess: Session,
9597 } ;
9698
9799 controller_entry_point ! ( after_expand,
100+ sess,
98101 CompileState :: state_after_expand( input,
99102 & sess,
100103 outdir,
@@ -108,6 +111,7 @@ pub fn compile_input(sess: Session,
108111 write_out_deps ( & sess, input, & outputs, & id[ ..] ) ;
109112
110113 controller_entry_point ! ( after_write_deps,
114+ sess,
111115 CompileState :: state_after_write_deps( input,
112116 & sess,
113117 outdir,
@@ -122,6 +126,7 @@ pub fn compile_input(sess: Session,
122126 control. make_glob_map ) ;
123127
124128 controller_entry_point ! ( after_analysis,
129+ analysis. ty_cx. sess,
125130 CompileState :: state_after_analysis( input,
126131 & analysis. ty_cx. sess,
127132 outdir,
@@ -148,6 +153,7 @@ pub fn compile_input(sess: Session,
148153 phase_5_run_llvm_passes ( & sess, & trans, & outputs) ;
149154
150155 controller_entry_point ! ( after_llvm,
156+ sess,
151157 CompileState :: state_after_llvm( input,
152158 & sess,
153159 outdir,
0 commit comments