From eeb8d20db46ef278ac91606f6e7c274f4852136a Mon Sep 17 00:00:00 2001 From: Devin Coughlin Date: Sun, 16 Oct 2016 19:26:07 +0000 Subject: [PATCH] Revert "[analyzer] Make MallocChecker more robust against custom redeclarations" This reverts commit r284335. It appears to be causing test-suite compile-time and execution-time performance measurements to take longer than expected on several bots. This is surprising, because r284335 is a static-analyzer-only change. llvm-svn: 284340 --- .../lib/StaticAnalyzer/Checkers/MallocChecker.cpp | 4 --- clang/test/Analysis/malloc-custom.c | 32 ---------------------- 2 files changed, 36 deletions(-) delete mode 100644 clang/test/Analysis/malloc-custom.c diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp index a00fd1d..e3c940f 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 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 3c16bbd..0000000 --- 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 -} - -- 2.7.4