[LLVMbugs] [Bug 9455] New: Incorrectly reports "The left operand of '!=' is a garbage value"

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Mar 11 03:11:41 PST 2011


           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: kremenek at apple.com
        ReportedBy: boborbt at gmail.com
                CC: llvmbugs at cs.uiuc.edu

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

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 ) {
            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

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