Issue 55660
Summary [clang/lldb] lldb wrongly stopped inside a dead loop
Labels new issue
Assignees
Reporter yangyibiao
    $ cat small.c
```
int main()
{
  int j = 0, d = 0;
  if (j>=0)
    for (; d; d++)
      return 0;
  return 0;
}
```

$ clang --version
```
Ubuntu clang version 15.0.0-++20220520091548+a61835b1e3f5-1~exp1~20220520091641.498
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```

$ clang -O0 -g small.c; lldb a.out
```
(lldb) target create "a.out"
Current executable set to '/root/a.out' (x86_64).
(lldb) b 5
Breakpoint 1: where = a.out`main + 35 at small.c:5:5, address = 0x0000000000000623
(lldb) r
Process 20281 launched: '/root/a.out' (x86_64)
Process 20281 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x0000555555554623 a.out`main at small.c:5:5
   2   	{
   3   	  int j = 0, d = 0;
   4   	  if (j>=0)
-> 5   	    for (; d; d++)
   6   	      return 0;
   7   	  return 0;
   8   	}
(lldb) s
Process 20281 stopped
* thread #1, name = 'a.out', stop reason = step in
    frame #0: 0x000055555555463e a.out`main at small.c:6:14
   3   	  int j = 0, d = 0;
   4   	  if (j>=0)
   5   	    for (; d; d++)
-> 6   	      return 0;
   7   	  return 0;
   8   	}
(lldb) 
```

lldb wrongly stopped at line 6. However, d is 0 and lldb should not stopped inside the for loop. 

I have report this bug  in https://bugs.llvm.org/show_bug.cgi?id=45603
However, I found this problem is stilll in the latest version of clang/lldb. 
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to