[PATCH] D152197: [NFC][CLANG] Fix static analyzer bugs with null pointer dereferences in CheckSizelessVectorOperands()
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 6 06:10:40 PDT 2023
erichkeane requested changes to this revision.
erichkeane added a comment.
This revision now requires changes to proceed.
The SA tool is incorrect here.
================
Comment at: clang/lib/Sema/SemaExpr.cpp:11119
if ((OperationKind == ACK_Arithmetic) &&
((LHSBuiltinTy && LHSBuiltinTy->isSVEBool()) ||
(RHSBuiltinTy && RHSBuiltinTy->isSVEBool()))) {
----------------
sdesmalen wrote:
> This doesn't seem like a non-functional change. Here it checks that LHSBuiltinTy is not nullptr before using it, which suggests that it is valid for LHSType/RHSType not to be a builtin type. There is also nothing else guarding that the types are all VLSTBuiltinTypes. Do none of the tests fail?
In fact they DO! Pre-commit CI found them.
================
Comment at: clang/lib/Sema/SemaExpr.cpp:11148
if (LHSType->isVLSTBuiltinType() && RHSType->isVLSTBuiltinType() &&
Context.getBuiltinVectorTypeInfo(LHSBuiltinTy).EC !=
Context.getBuiltinVectorTypeInfo(RHSBuiltinTy).EC) {
----------------
This is the only other use of htem, but the 1st part of the 'if' checks if these are builtin types.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D152197/new/
https://reviews.llvm.org/D152197
More information about the cfe-commits
mailing list