浏览代码

Always treat __global__ as defined

Hugh Sanderson 13 年之前
父节点
当前提交
16c278cabe
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      gencpp.ml

+ 4 - 0
gencpp.ml

@@ -950,6 +950,8 @@ let rec define_local_function_ctx ctx func_name func_def =
 	let rec define_local_function func_name func_def =
 	let rec define_local_function func_name func_def =
 		let declarations = Hashtbl.create 0 in
 		let declarations = Hashtbl.create 0 in
 		let undeclared = Hashtbl.create 0 in
 		let undeclared = Hashtbl.create 0 in
+		(* '__global__' is always defined *)
+		Hashtbl.add declarations "__global__" ();
 		(* Add args as defined variables *)
 		(* Add args as defined variables *)
 		List.iter ( fun (arg_var, opt_val) ->
 		List.iter ( fun (arg_var, opt_val) ->
 			if (ctx.ctx_debug) then
 			if (ctx.ctx_debug) then
@@ -1063,6 +1065,8 @@ and define_local_return_block_ctx ctx expression name =
 	let rec define_local_return_block expression  =
 	let rec define_local_return_block expression  =
 		let declarations = Hashtbl.create 0 in
 		let declarations = Hashtbl.create 0 in
 		let undeclared = Hashtbl.create 0 in
 		let undeclared = Hashtbl.create 0 in
+		(* '__global__' is always defined *)
+		Hashtbl.add declarations "__global__" ();
 		find_undeclared_variables_ctx ctx undeclared declarations "_obj" true expression;
 		find_undeclared_variables_ctx ctx undeclared declarations "_obj" true expression;
 
 
 		let vars = (hash_keys undeclared) in
 		let vars = (hash_keys undeclared) in