public Object[] ic_trans(IcFun f,IcStmt_label break_to){
		/* branch L1 if expr1==0
		 * expr2
		 * L1
		 */
		LinkedList<IcStmt> codes = new LinkedList<IcStmt>();
		
		/* 1.L1(not now) */
		IcStmt_label the_l1 = IcStmt_label.new_one(f, 0);
		f.labels.add(the_l1);
		/* 2.expr1 */
		Object[] result = e1.ic_trans(f, break_to);
		codes.addAll((LinkedList<IcStmt>)result[0]);
		IcOper pred = (IcOper)result[1];
		/* 3.branch */
		codes.add(new IcStmt_branch(f,0,pred,new IcConst_int(0),the_l1,IcStmt_branch.EQ));
		/* 4.expr2 --- must be void */
		Object[] result2 = e2.ic_trans(f, break_to);
		codes.addAll((LinkedList<IcStmt>)result2[0]);
		/* 5.L1 */
		codes.add(the_l1);
		
		return new Object[]{codes,null};
	}