protected Stmt createUndefinedStore(final VarExpr target) {
		if (target.type().isReference()) {
			return new ExprStmt(new StoreExpr(target, new ConstantExpr(null,
					Type.OBJECT), target.type()));
		}

		if (target.type().isIntegral()) {
			return new ExprStmt(new StoreExpr(target, new ConstantExpr(
					new Integer(0), Type.INTEGER), target.type()));
		}

		if (target.type().equals(Type.LONG)) {
			return new ExprStmt(new StoreExpr(target, new ConstantExpr(
					new Long(0), Type.LONG), target.type()));
		}

		if (target.type().equals(Type.FLOAT)) {
			return new ExprStmt(new StoreExpr(target, new ConstantExpr(
					new Float(0.0F), Type.FLOAT), target.type()));
		}

		if (target.type().equals(Type.DOUBLE)) {
			return new ExprStmt(new StoreExpr(target, new ConstantExpr(
					new Double(0.0), Type.DOUBLE), target.type()));
		}

		throw new RuntimeException("Illegal type: " + target.type());
	}