From 2509587b5aebc887fb5aee92f2fb7cada66d5729 Mon Sep 17 00:00:00 2001
From: Roxy-3D <Roxy-3D@users.noreply.github.com>
Date: Sat, 29 Apr 2017 22:01:29 -0500
Subject: [PATCH] Correct over optimization of pre-initialized variables
 (#6500)

* Correct over optimization of pre-initialized variables

NEAR_ZERO() works most of the time...  But it leaves corner cases
uncovered.  We need to explicitly check if these variables are +/-
infinity.

* Correct over optimization of pre-initialized variables
---
 Marlin/ubl_motion.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/Marlin/ubl_motion.cpp b/Marlin/ubl_motion.cpp
index 7325a5cf2c..3bc74585a1 100755
--- a/Marlin/ubl_motion.cpp
+++ b/Marlin/ubl_motion.cpp
@@ -250,8 +250,10 @@
     const float m = dy / dx,
                 c = start[Y_AXIS] - m * start[X_AXIS];
 
-    const bool inf_normalized_flag = NEAR_ZERO(on_axis_distance),
-               inf_m_flag = NEAR_ZERO(dx);
+    bool inf_normalized_flag, inf_m_flag; 
+
+    inf_normalized_flag = isinf(e_normalized_dist);
+    inf_m_flag = isinf(m);
 
     /**
      * This block handles vertical lines. These are lines that stay within the same
@@ -265,7 +267,7 @@
         const float next_mesh_line_y = LOGICAL_Y_POSITION(pgm_read_float(&(ubl.mesh_index_to_ypos[current_yi])));
 
         /**
-         * inf_m_flag? the slope of the line is infinite, we won't do the calculations
+         * if the slope of the line is infinite, we won't do the calculations
          * else, we know the next X is the same so we can recover and continue!
          * Calculate X at the next Y mesh line
          */