From 8fe4edc0b1b2368000125771c2a30b2c453d35a2 Mon Sep 17 00:00:00 2001 From: Soumi Manna Date: Mon, 20 Dec 2021 18:41:35 -0800 Subject: [PATCH] [SYCL][NFC] Fix static code analysis concerns Found via a static-analysis tool: Suspicious dereference of pointer in function call before NULL check Inside checkAllowedSYCLInitializer() in SemaSYCL.cpp file: const Expr *Init = VD->getInit(); bool ValueDependent = Init->isValueDependent(); --> 'Init' is dereferenced by being passed as argument 0 to function "isValueDependent bool isConstantInit = Init && !ValueDependent && Init->isConstantInitializer(Context, false); --> 'Init' is checked for NULL here This patch adds NULL value checking for 'Init' expression. Signed-off-by: Soumi Manna --- clang/lib/Sema/SemaSYCL.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/lib/Sema/SemaSYCL.cpp b/clang/lib/Sema/SemaSYCL.cpp index 6b153adcaf34..ebd7c33253f3 100644 --- a/clang/lib/Sema/SemaSYCL.cpp +++ b/clang/lib/Sema/SemaSYCL.cpp @@ -4148,7 +4148,7 @@ bool Sema::checkAllowedSYCLInitializer(VarDecl *VD) { return true; const Expr *Init = VD->getInit(); - bool ValueDependent = Init->isValueDependent(); + bool ValueDependent = Init && Init->isValueDependent(); bool isConstantInit = Init && !ValueDependent && Init->isConstantInitializer(Context, false); if (!VD->isConstexpr() && Init && !ValueDependent && !isConstantInit)