[Intel-gfx] [PATCH] drm/i915/crt: Silence compiler warning for uninitialised status
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Feb 8 17:53:21 UTC 2018
On Thu, Feb 08, 2018 at 04:39:39PM +0000, Chris Wilson wrote:
> clang is confused by our if-else-chain that abruptly exits before a
> final else:
>
> drivers/gpu/drm/i915/intel_crt.c:821:11: warning: variable 'status' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
> else if (ret < 0)
> ^~~~~~~
> drivers/gpu/drm/i915/intel_crt.c:826:9: note: uninitialized use occurs here
> return status;
> ^~~~~~
> drivers/gpu/drm/i915/intel_crt.c:821:7: note: remove the 'if' if its condition is always true
> else if (ret < 0)
> ^~~~~~~~~~~~
> drivers/gpu/drm/i915/intel_crt.c:761:12: note: initialize the variable 'status' to silence this warning
> int status, ret;
>
> In this case, we can reduce the final else-if clause to an unconditional
> else.
Makes me wonder a bit if clang has any sort of range analysis pass.
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_crt.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 1cd4a7c22bd5..d1493ced16f8 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -807,10 +807,11 @@ intel_crt_detect(struct drm_connector *connector,
> else
> status = connector_status_unknown;
> intel_release_load_detect_pipe(connector, &tmp, ctx);
> - } else if (ret == 0)
> + } else if (ret == 0) {
> status = connector_status_unknown;
> - else if (ret < 0)
> + } else {
> status = ret;
> + }
>
> out:
> intel_display_power_put(dev_priv, intel_encoder->power_domain);
> --
> 2.16.1
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list