diff options
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp | 4 | ||||
-rw-r--r-- | clang/test/Analysis/malloc-custom.c | 32 |
2 files changed, 0 insertions, 36 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp index a00fd1d421e..e3c940f6be8 100644 --- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp @@ -778,8 +778,6 @@ void MallocChecker::checkPostStmt(const CallExpr *CE, CheckerContext &C) const { State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State); } } else if (FunI == II_kmalloc) { - if (CE->getNumArgs() < 1) - return; llvm::Optional<ProgramStateRef> MaybeState = performKernelMalloc(CE, C, State); if (MaybeState.hasValue()) @@ -809,8 +807,6 @@ void MallocChecker::checkPostStmt(const CallExpr *CE, CheckerContext &C) const { } else if (FunI == II_strndup) { State = MallocUpdateRefState(C, CE, State); } else if (FunI == II_alloca || FunI == II_win_alloca) { - if (CE->getNumArgs() < 1) - return; State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State, AF_Alloca); State = ProcessZeroAllocation(C, CE, 0, State); diff --git a/clang/test/Analysis/malloc-custom.c b/clang/test/Analysis/malloc-custom.c deleted file mode 100644 index 3c16bbd17e6..00000000000 --- a/clang/test/Analysis/malloc-custom.c +++ /dev/null @@ -1,32 +0,0 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc -Wno-incompatible-library-redeclaration -verify %s - -// Various tests to make the the analyzer is robust against custom -// redeclarations of memory routines. -// -// You wouldn't expect to see much of this in normal code, but, for example, -// CMake tests can generate these. - -// expected-no-diagnostics - -char alloca(); -char malloc(); -char realloc(); -char kmalloc(); -char valloc(); -char calloc(); - -char free(); -char kfree(); - -void testCustomArgumentlessAllocation() { - alloca(); // no-crash - malloc(); // no-crash - realloc(); // no-crash - kmalloc(); // no-crash - valloc(); // no-crash - calloc(); // no-crash - - free(); // no-crash - kfree(); // no-crash -} - |