[LLVMbugs] [Bug 10795] New: Extend memset-like sizeof() checks to *alloc
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Sat Aug 27 16:08:52 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10795
Summary: Extend memset-like sizeof() checks to *alloc
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Frontend
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: joerg at NetBSD.org
CC: llvmbugs at cs.uiuc.edu
It would be nice if malloc and friends had type-based diagnostic like memset:
foo = malloc(sizeof(bar))
should check whether:
(1) typeof(foo) == typeof(bar) --> warning
(2) sizeof(bar) < sizeof(foo) --> warning
foo = (bar *)malloc(...)
should additionally check that typeof(foo) == bar * and recomment removing the
cast. This is pre-ANSI style.
A static analyzer for expressions of the form malloc(x * sizeof(y)) etc might
be useful if x can't be proven to be small enough to not trigger overflow.
A static analyzer check for the following idiom would be nice:
foo = malloc(len);
memset(foo, 0, len);
--> foo = calloc(1, len);
foo = malloc(x * sizeof(**foo));
memset(foo, 0, x * sizeof(**foo));
--> foo = calloc(x, sizeof(**foo));
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list