Work around a GCC miscompilation issue.

Bug 18470793

Change-Id: Idac85c738810db112e7af56f5e1635c2ac6d325c
Reviewed-on: https://swiftshader-review.googlesource.com/1841
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/QuadRasterizer.cpp b/src/Renderer/QuadRasterizer.cpp
index d15c895..f189bd3 100644
--- a/src/Renderer/QuadRasterizer.cpp
+++ b/src/Renderer/QuadRasterizer.cpp
@@ -250,11 +250,9 @@
 					r.Dw = *Pointer<Float4>(r.primitive + OFFSET(Primitive,w.C), 16) + yyyy * *Pointer<Float4>(r.primitive + OFFSET(Primitive,w.B), 16);
 				}
 
-				for(int interpolant = 0; interpolant < 11; interpolant++)
+				for(int interpolant = 0; interpolant < 10; interpolant++)
 				{
-					int componentCount = interpolant < 10 ? 4 : 1;   // Fog only has one component
-
-					for(int component = 0; component < componentCount; component++)
+					for(int component = 0; component < 4; component++)
 					{
 						if(state.interpolant[interpolant].component & (1 << component))
 						{
@@ -268,6 +266,16 @@
 					}
 				}
 
+				if(state.fog.component)
+				{
+					r.Df = *Pointer<Float4>(r.primitive + OFFSET(Primitive,f.C), 16);
+
+					if(!state.fog.flat)
+					{
+						r.Df += yyyy * *Pointer<Float4>(r.primitive + OFFSET(Primitive,f.B), 16);
+					}
+				}
+
 				Short4 xLeft[4];
 				Short4 xRight[4];