Browse Source

[cs] also don't generate #line default when not -debug

Dan Korostelev 10 năm trước cách đây
mục cha
commit
b192e2b2b4
1 tập tin đã thay đổi với 10 bổ sung3 xóa
  1. 10 3
      gencs.ml

+ 10 - 3
gencs.ml

@@ -1131,8 +1131,9 @@ let configure gen =
 	let last_line = ref (-1) in
 	let begin_block w = write w "{"; push_indent w; newline w; last_line := -1 in
 	let end_block w = pop_indent w; (if w.sw_has_content then newline w); write w "}"; newline w; last_line := -1 in
+	let skip_line_directives = (not gen.gcon.debug && not (Common.defined gen.gcon Define.NoCompilation)) || Common.defined gen.gcon Define.RealPosition in
 	let line_directive =
-		if (not gen.gcon.debug && not (Common.defined gen.gcon Define.NoCompilation)) || Common.defined gen.gcon Define.RealPosition then
+		if skip_line_directives then
 			fun w p -> ()
 		else fun w p ->
 			let cur_line = Lexer.get_error_line p in
@@ -1141,6 +1142,12 @@ let configure gen =
 			if cur_line <> ((!last_line)+1) then begin print w "#line %d \"%s\"" line (Ast.s_escape file); newline w end;
 			last_line := cur_line
 	in
+	let line_reset_directive =
+		if skip_line_directives then
+			fun w -> ()
+		else fun w ->
+			print w "#line default"
+	in
 
 	let rec extract_tparams params el =
 		match el with
@@ -2120,7 +2127,7 @@ let configure gen =
 										let t = Common.timer "expression to string" in
 										expr_s w e;
 										t();
-										if not (Common.defined gen.gcon Define.RealPosition) then write w "#line default";
+										line_reset_directive w;
 										if unchecked then end_block w
 									| _ ->
 										assert false
@@ -2415,7 +2422,7 @@ let configure gen =
 			| Some init ->
 				print w "static %s() " (snd cl.cl_path);
 				expr_s w (mk_block init);
-				if not (Common.defined gen.gcon Define.RealPosition) then write w "#line default";
+				line_reset_directive w;
 				newline w;
 				newline w
 		);