http://llvm.org/bugs/show_bug.cgi?id=9455
Summary: Incorrectly reports "The left operand of '!=' is a
garbage value"
Product: clang
Version: 2.9
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: Static Analyzer
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Created an attachment (id=6309)
--> (http://llvm.org/bugs/attachment.cgi?id=6309)
A bare-bone c-file that shows the problem.
In the attached source, the analyzer incorrectly reports a potential garbage
value.
It seems that the analyzer gets confused by the combination of static
initialization of the char string:
char pattern[4] = "000";
and by the subsequent modification by the if statements:
if (fun(t-1)) {
pattern[0] = '1';
}
if (fun(t)) {
pattern[1] = '1';
}
if (fun(t+1)) {
pattern[2] = '1';
}
when the code reaches a loop that make simple checks over the string:
int i;
for( i=0; i<3; ++i ) {
if(pattern[i]!=fun2(i))
return 0;
}
the analyzer incorrectly thinks that pattern[i] is gargbage value. This cannot
be the case since all indices in 0..2 have been initialized to the character
'0'.
--
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