http://llvm.org/bugs/show_bug.cgi?id=14675
Bug #: 14675
Summary: clang doesn't warn (where gcc does) when reading too
far in a C array
Product: new-bugs
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P
Component: new bugs
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Classification: Unclassified
I was sad to discover that clang does not warn here:
---------
static void Set4 (const double arg[4])
{
printf("%f %f %f %f \n", arg[0], arg[1], arg[2], arg[3]);
}
int main (void)
{
double array[3] = {1.0, 2.0, 3.0};
Set4(array);
return 0;
}
---------
In C99, you could say "double arg[static 4]", but that does not help in C++.
Contrast with gcc:
$ gcc -Wuninitialized -O a.c
a.c: In function 'main':
a.c:5:13: warning: '*((void *)&array+24)' is used uninitialized in
this function [-Wuninitialized]
a.c:10:14: note: 'array' was declared here
$ gcc --version
gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2)
--
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs