<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128271>128271</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLDB uses a wrong object to evaluate an expression
</td>
</tr>
<tr>
<th>Labels</th>
<td>
lldb
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
igorkudrin
</td>
</tr>
</table>
<pre>
When evaluating an expression, LLDB can find an object which does not belong to the current context. Here is a reproducer:
```
> cat test.cpp
class Test
{
static const int a[];
};
const int Test::a[] = {1};
int a(int val) { return val; }
int main (int argc, char const *argv[])
{
return a(2); // break here
}
> clang -g test.cpp -o test
> lldb
(lldb) file test
(lldb) br set -p "// break here"
Breakpoint 1: where = test`main + 22 at test.cpp:11:12, address = 0x0000000000001156
(lldb) run
Process 70063 launched: '/tmp/test' (x86_64)
Process 70063 stopped
* thread #1, name = 'test', stop reason = breakpoint 1.1
frame #0: 0x0000555555555156 test`main(argc=1, argv=0x00007fffffffdf08) at test.cpp:11:12
8
9 int main (int argc, char const *argv[])
10 {
-> 11 return a(2); // break here
12 }
(lldb) expr -- a(1)
˄
╰─ error: called object type 'const int[1]' is not a function or function pointer
```
Expected result: the function `a()` must be called; `a[]` should not be visible in this context without explicitly adding `Test::`.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVU2P4zYM_TXKhUgg0fFHDj44mwl62EMPBXosZEuJ1VUkQ5IzM_--oOzJTNo9FCsMxopJPpJP9JOM0Vyd1i0rj6w8beScRh9ac_Xhx6yCcZveq_f2z1E70HdpZ5mMu4J0oN-moGM03jH8Bt-_n44wSAcX4xSZff-3HhK8jmYYQXkdwfkEvbbeXSF5SKOGYQ5BuwSDd0m_pR38poMGE0FC0FPwah50YEXHeMcqvv7xjhUvMMgESce0G6aJ8W6wMkb4Q8dE9vrIeAcAEJNMZiD8mMC4BHJpkxXH7LduPu0ZoehY0a2ewIoTsPooHs6MdwsSNvS8S8vwQC4QdJqDy2-KI1DAw_smjYM1QobrQJQNowxraQw7Ga73tTg8PDWxwlJCJBth45nhGfqg5Q8YddBrNys3VrorbK8PgmDr8361W6t62mKTd3iAi7H64fH5ug8QdYLtBAzxvzkRGe-O9Hvy1JhgRQevZMqsZbyKr60fARG-HlrRCQoQSFxIpWiYchx_41-WEGX1XFWYHePd78EPFFFzXhVg5eyGUSuqgGHN8JxuE_2nGrAm6t-a6q9qv5D7HByTnyatcpYO0hi0VMCwEFSZk7elHYb1ikavKQaCltG7bO2_0LAT68ldQg7GglNdS1_lxxJl9ZUihk0ejOKU0-ZxKE5LTH1Zlrrwhhj4OY05Z7M8DpT-1wYPAAQHgGUAtzQwQsCy_ucoEgRmiNPz0ZFmwHabAcQj3dNi346s2f_M8ILsULIjz5s9azjoEDzpAwzSWq0-NCe9T8R6_fisWXkUub-axIV0SMJldkMy3oEPn_t8gDr8S29e3iY9JK0g6Dhb0oesXo8oVnFqiPqpONzmSDq31pQpIvvCcMUhjn62alVDuJtoeqvBOEijiR9SCK8mjX5OxJg1g0n2nb4Rkl5W8U-VYhXfbVRbqENxkBvdinrPxQFRFJuxLZWqGyGULPelkqKum71sBPYN9o1uVLMxLXIsOSJy3BdFsauUvpRY6ApLXl4OnO25vkljd9bebzsfrhsT46xbgQ3WYmNlr23MVwficsZIl0hoyX_bz9fI9tyamOInQjLJ6jbfF3PUpPWvge6Ej8PzH_eMfr5lNnOw7ZjSFKnvPHVXk8a53w3-xvBMCdbHdgqewBiec72R4Xkt-d7iPwEAAP__M6ELXQ">