From d4bb19e2c49de32a01cef56ad739cc10e9afd237 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Mon, 22 Aug 2022 21:36:52 -0400 Subject: [PATCH] intel: Avoid aliasing violation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ../intel/test_decode.c: In function ‘compare_batch’: ../intel/test_decode.c:109:39: error: dereferencing type-punned pointer might break strict-aliasing rules [-Werror=strict-aliasing] 109 | out = open_memstream((char **)&ptr, &size); | ^~~~ cc1: some warnings being treated as errors The fix is simple: just declare `ptr` as a `char *` to begin with. --- intel/test_decode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/intel/test_decode.c b/intel/test_decode.c index b9f5b927..c47752c9 100644 --- a/intel/test_decode.c +++ b/intel/test_decode.c @@ -86,7 +86,8 @@ static void compare_batch(struct drm_intel_decode *ctx, const char *batch_filename) { FILE *out = NULL; - void *ptr, *ref_ptr, *batch_ptr; + char *ptr; + void *ref_ptr, *batch_ptr; #if HAVE_OPEN_MEMSTREAM size_t size; #endif @@ -106,7 +107,7 @@ compare_batch(struct drm_intel_decode *ctx, const char *batch_filename) * inside of an automake project's test infrastructure. */ #if HAVE_OPEN_MEMSTREAM - out = open_memstream((char **)&ptr, &size); + out = open_memstream(&ptr, &size); #else fprintf(stderr, "platform lacks open_memstream, skipping.\n"); exit(77);