https://bugs.llvm.org/show_bug.cgi?id=39913

            Bug ID: 39913
           Summary: alpha.deadcode.UnreachableCode trivial false positive
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Static Analyzer
          Assignee: dcough...@apple.com
          Reporter: abramo.bagn...@bugseng.com
                CC: dcough...@apple.com, llvm-bugs@lists.llvm.org

The typescript below shows the wrong warning and the proof it is wrong:

abramo@igor:/tmp$ cat p.c
#include <stdio.h>

void g() {
  printf("reached\n");
}

void f(int btn) {
    static int x = 0;
    if (btn == x) {
      if (btn != 0) {
        g();
      } else {
        x = 2;
      }
    }
}

abramo@igor:/tmp$ cat q.c
extern void f(int);
int main() {
  f(0);
  f(2);
}
abramo@igor:/tmp$ scan-build-8 -enable-checker alpha.deadcode.UnreachableCode
gcc p.c q.c
scan-build: Using '/usr/lib/llvm-8/bin/clang' for static analysis
p.c:11:9: warning: This statement is never executed
        g();
        ^
1 warning generated.
scan-build: 1 bug found.
scan-build: Run 'scan-view /tmp/scan-build-2018-12-07-124451-16359-1' to
examine bug reports.
abramo@igor:/tmp$ ./a.out
reached

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to