From e91c3540fc620b39a16d5bce9fd75aa0ddd7ed7e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 17 Oct 2017 15:41:25 -0700 Subject: [PATCH] i965: Fix memmem compiler warnings. gcc is throwing this warning in my meson build: ../src/intel/compiler/brw_eu_validate.c:50:11: warning argument 1 null where non-null expected [-Wnonnull] return memmem(haystack.str, haystack.len, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ needle.str, needle.len) != NULL; ~~~~~~~~~~~~~~~~~~~~~~~ The first check for CONTAINS has a NULL error_msg.str and 0 len. The glibc implementation will exit without looking at any haystack bytes if haystack.len < needle.len, so this was safe, but silence the warning anyway by guarding against implementation variablility. Fixes: 122ef3799d56 ("i965: Only insert error message if not already present") Reviewed-by: Matt Turner --- src/intel/compiler/brw_eu_validate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c index 9f72c650ddb..f359599c38d 100644 --- a/src/intel/compiler/brw_eu_validate.c +++ b/src/intel/compiler/brw_eu_validate.c @@ -47,7 +47,8 @@ cat(struct string *dest, const struct string src) static bool contains(const struct string haystack, const struct string needle) { - return memmem(haystack.str, haystack.len, needle.str, needle.len) != NULL; + return haystack.str && memmem(haystack.str, haystack.len, + needle.str, needle.len) != NULL; } #define CONTAINS(haystack, needle) \ contains(haystack, (struct string){needle, strlen(needle)}) -- 2.11.0