[PATCH] D153033: [NFC][CLANG] Fix potential null pointer dereference bugs
Soumi Manna via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 15 08:40:17 PDT 2023
Manna updated this revision to Diff 531773.
Manna added a comment.
Update patch
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D153033/new/
https://reviews.llvm.org/D153033
Files:
clang/lib/AST/ASTContext.cpp
clang/lib/AST/MicrosoftMangle.cpp
clang/lib/Analysis/ThreadSafety.cpp
clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
clang/lib/Sema/SemaExpr.cpp
Index: clang/lib/Sema/SemaExpr.cpp
===================================================================
--- clang/lib/Sema/SemaExpr.cpp
+++ clang/lib/Sema/SemaExpr.cpp
@@ -4955,7 +4955,8 @@
};
// The matrix subscript operator ([][])is considered a single operator.
// Separating the index expressions by parenthesis is not allowed.
- if (base->hasPlaceholderType(BuiltinType::IncompleteMatrixIdx) &&
+ if (base && !base->getType().isNull() &&
+ base->hasPlaceholderType(BuiltinType::IncompleteMatrixIdx) &&
!isa<MatrixSubscriptExpr>(base)) {
Diag(base->getExprLoc(), diag::err_matrix_separate_incomplete_index)
<< SourceRange(base->getBeginLoc(), rbLoc);
Index: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
===================================================================
--- clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+++ clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
@@ -3365,7 +3365,7 @@
if (getDataSharingMode(CGM) != CGOpenMPRuntimeGPU::Generic)
return Address::invalid();
- VD = VD->getCanonicalDecl();
+ VD = cast<VarDecl>(VD->getCanonicalDecl());
auto I = FunctionGlobalizedDecls.find(CGF.CurFn);
if (I == FunctionGlobalizedDecls.end())
return Address::invalid();
Index: clang/lib/Analysis/ThreadSafety.cpp
===================================================================
--- clang/lib/Analysis/ThreadSafety.cpp
+++ clang/lib/Analysis/ThreadSafety.cpp
@@ -504,6 +504,10 @@
D->printName(llvm::errs());
const unsigned *i = C.lookup(D);
llvm::errs() << " -> ";
+ if (!i) {
+ llvm::errs() << "<<NULL>>";
+ return;
+ }
dumpVarDefinitionName(*i);
llvm::errs() << "\n";
}
Index: clang/lib/AST/MicrosoftMangle.cpp
===================================================================
--- clang/lib/AST/MicrosoftMangle.cpp
+++ clang/lib/AST/MicrosoftMangle.cpp
@@ -2693,7 +2693,7 @@
// Copy constructor closure always takes an unqualified reference.
mangleFunctionArgumentType(getASTContext().getLValueReferenceType(
Proto->getParamType(0)
- ->getAs<LValueReferenceType>()
+ ->castAs<LValueReferenceType>()
->getPointeeType(),
/*SpelledAsLValue=*/true),
Range);
Index: clang/lib/AST/ASTContext.cpp
===================================================================
--- clang/lib/AST/ASTContext.cpp
+++ clang/lib/AST/ASTContext.cpp
@@ -10030,6 +10030,9 @@
return false;
ObjCTypeParamList *typeParams = iface->getTypeParamList();
+ if (!typeParams)
+ return false;
+
for (unsigned i = 0, n = lhsArgs.size(); i != n; ++i) {
if (ctx.hasSameType(lhsArgs[i], rhsArgs[i]))
continue;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153033.531773.patch
Type: text/x-patch
Size: 2883 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230615/fb619461/attachment.bin>
More information about the cfe-commits
mailing list