Check biases pointer before referencing in CLDirectConvolutionLayer

The biases input can be nullptr, hence we need to check before
referencing.

A test is also added to ensure a successful configure and run of Direct
Convolution when there is no bias.

Resolves: COMPMID-4315

Change-Id: I23223efd6ced81215aff490221fb4606945c139b
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5322
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: James Conroy <james.conroy@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/CL/cl_kernels/direct_convolution.cl b/src/core/CL/cl_kernels/direct_convolution.cl
index 1de3737..dde024f 100644
--- a/src/core/CL/cl_kernels/direct_convolution.cl
+++ b/src/core/CL/cl_kernels/direct_convolution.cl
@@ -105,8 +105,9 @@
 __kernel void direct_convolution_nhwc(
     TENSOR4D(src, SRC_TENSOR_TYPE),
     TENSOR4D(dst, DST_TENSOR_TYPE),
-    TENSOR4D(wei, WEI_TENSOR_TYPE),
+    TENSOR4D(wei, WEI_TENSOR_TYPE)
 #if defined(HAS_BIAS)
+    ,
     VECTOR_DECLARATION(bia)
 #endif // defined(HAS_BIAS)
 )