Re: r284335 - [analyzer] Make MallocChecker more robust against custom redeclarations

2016-10-16 Thread Devin Coughlin via cfe-commits

> On Oct 16, 2016, at 12:53 PM, Renato Golin  wrote:
> 
> On 16 October 2016 at 20:36, Devin Coughlin  wrote:
>> Reverted in r284340.
> 
> Hi Devin,
> 
> Sometimes Clang patches break on stage 2 or test-suite, but this is
> not the case. I dug deeper and found that there was another commit,
> not showing on that range (it should have, but that's nothing to do
> with this patch), that broke the bot.
> 
> Please, re-commit your patch, and sorry for the noise.

Will do. Thanks for looking into it!

Devin

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r284335 - [analyzer] Make MallocChecker more robust against custom redeclarations

2016-10-16 Thread Renato Golin via cfe-commits
On 16 October 2016 at 20:36, Devin Coughlin  wrote:
> Reverted in r284340.

Hi Devin,

Sometimes Clang patches break on stage 2 or test-suite, but this is
not the case. I dug deeper and found that there was another commit,
not showing on that range (it should have, but that's nothing to do
with this patch), that broke the bot.

Please, re-commit your patch, and sorry for the noise.

--renato
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r284335 - [analyzer] Make MallocChecker more robust against custom redeclarations

2016-10-16 Thread Devin Coughlin via cfe-commits

> On Oct 16, 2016, at 12:12 PM, Devin Coughlin via cfe-commits 
>  wrote:
> 
>> 
>> On Oct 16, 2016, at 12:04 PM, Renato Golin  wrote:
>> 
>> On 16 October 2016 at 18:26, Devin Coughlin via cfe-commits
>>  wrote:
>>> Author: dcoughlin
>>> Date: Sun Oct 16 12:26:06 2016
>>> New Revision: 284335
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=284335=rev
>>> Log:
>>> [analyzer] Make MallocChecker more robust against custom redeclarations
>>> 
>>> Add additional checking to MallocChecker to avoid crashing when memory
>>> routines have unexpected numbers of arguments. You wouldn't expect to see 
>>> much
>>> of this in normal code (-Wincompatible-library-redeclaration warns on this),
>>> but, for example, CMake tests can generate these.
>> 
>> Hi Devin,
>> 
>> Sounds like yours:
>> 
>> http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/11121
> 
> I’ll speculatively revert. But I don’t understand how a static analyzer-only 
> change could affect either the execution time or the compile time of a 
> test-suite benchmark. There’s something very funny here.

Reverted in r284340.

Devin

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r284335 - [analyzer] Make MallocChecker more robust against custom redeclarations

2016-10-16 Thread Devin Coughlin via cfe-commits

> On Oct 16, 2016, at 12:04 PM, Renato Golin  wrote:
> 
> On 16 October 2016 at 18:26, Devin Coughlin via cfe-commits
>  wrote:
>> Author: dcoughlin
>> Date: Sun Oct 16 12:26:06 2016
>> New Revision: 284335
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=284335=rev
>> Log:
>> [analyzer] Make MallocChecker more robust against custom redeclarations
>> 
>> Add additional checking to MallocChecker to avoid crashing when memory
>> routines have unexpected numbers of arguments. You wouldn't expect to see 
>> much
>> of this in normal code (-Wincompatible-library-redeclaration warns on this),
>> but, for example, CMake tests can generate these.
> 
> Hi Devin,
> 
> Sounds like yours:
> 
> http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/11121

I’ll speculatively revert. But I don’t understand how a static analyzer-only 
change could affect either the execution time or the compile time of a 
test-suite benchmark. There’s something very funny here.

Devin

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r284335 - [analyzer] Make MallocChecker more robust against custom redeclarations

2016-10-16 Thread Renato Golin via cfe-commits
On 16 October 2016 at 18:26, Devin Coughlin via cfe-commits
 wrote:
> Author: dcoughlin
> Date: Sun Oct 16 12:26:06 2016
> New Revision: 284335
>
> URL: http://llvm.org/viewvc/llvm-project?rev=284335=rev
> Log:
> [analyzer] Make MallocChecker more robust against custom redeclarations
>
> Add additional checking to MallocChecker to avoid crashing when memory
> routines have unexpected numbers of arguments. You wouldn't expect to see much
> of this in normal code (-Wincompatible-library-redeclaration warns on this),
> but, for example, CMake tests can generate these.

Hi Devin,

Sounds like yours:

http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/11121

cheers,
--renato
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r284335 - [analyzer] Make MallocChecker more robust against custom redeclarations

2016-10-16 Thread Devin Coughlin via cfe-commits
Author: dcoughlin
Date: Sun Oct 16 12:26:06 2016
New Revision: 284335

URL: http://llvm.org/viewvc/llvm-project?rev=284335=rev
Log:
[analyzer] Make MallocChecker more robust against custom redeclarations

Add additional checking to MallocChecker to avoid crashing when memory
routines have unexpected numbers of arguments. You wouldn't expect to see much
of this in normal code (-Wincompatible-library-redeclaration warns on this),
but, for example, CMake tests can generate these.

This is PR30616.

rdar://problem/28631974

Added:
cfe/trunk/test/Analysis/malloc-custom.c
Modified:
cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=284335=284334=284335=diff
==
--- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Sun Oct 16 12:26:06 
2016
@@ -778,6 +778,8 @@ void MallocChecker::checkPostStmt(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())
@@ -807,6 +809,8 @@ void MallocChecker::checkPostStmt(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);

Added: cfe/trunk/test/Analysis/malloc-custom.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/malloc-custom.c?rev=284335=auto
==
--- cfe/trunk/test/Analysis/malloc-custom.c (added)
+++ cfe/trunk/test/Analysis/malloc-custom.c Sun Oct 16 12:26:06 2016
@@ -0,0 +1,32 @@
+// 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
+}
+


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits