Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/249 (#444)

* Fix for Khronos https://github.com/KhronosGroup/OpenCL-CTS/issues/249 where incoming errors are overwritten by exit block

* Fix for build failure that was observed in cl12_trunk with prior #249 change
diff --git a/test_conformance/math_brute_force/macro_unary.c b/test_conformance/math_brute_force/macro_unary.c
index 95af882..1ebc78d 100644
--- a/test_conformance/math_brute_force/macro_unary.c
+++ b/test_conformance/math_brute_force/macro_unary.c
@@ -396,6 +396,7 @@
     int     ftz = job->ftz;
     cl_uint j, k;
     cl_int error = CL_SUCCESS;
+    cl_int ret   = CL_SUCCESS;
     const char *name = job->f->name;
 
     int signbit_test = 0;
@@ -564,6 +565,7 @@
     }
 
 exit:
+    ret = error;
     for( j = gMinVectorSizeIndex; j < gMaxVectorSizeIndex; j++ )
     {
         if( (error = clEnqueueUnmapMemObject( tinfo->tQueue, tinfo->outBuf[j], out[j], 0, NULL, NULL)) )
@@ -574,7 +576,10 @@
     }
 
     if( (error = clFlush(tinfo->tQueue) ))
+    {
         vlog( "clFlush 3 failed\n" );
+        return error;
+    }
 
 
     if( 0 == ( base & 0x0fffffff) )
@@ -589,7 +594,7 @@
        fflush(stdout);
     }
 
-    return error;
+    return ret;
 }
 
 static cl_int TestDouble( cl_uint job_id, cl_uint thread_id, void *data );