protected Stmt createStore(VarExpr target, final Expr source) {
		target = (VarExpr) target.clone();

		// Source is an undefined variable, initialize it
		if ((source instanceof VarExpr) && (source.def() == null)) {
			return createUndefinedStore(target);
		}

		return new ExprStmt(new StoreExpr(target, (Expr) source.clone(), target
				.type()));
	}