tree 1a1ea6f71019342497fc2ee6e09b9bef696a74dd
parent 37cf1fc62c8d95bc2b7487ef1302dc472606d66e
author Michael Buch <michaelbuch12@gmail.com> 1761901403 +0000
committer GitHub <noreply@github.com> 1761901403 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpBHtbCRC1aQ7uu5UhlAAA4cUQALHmoSfN/CQO9IuNJSuc2iC3
 xv+ihgswG6od+N4bgF6GSZ/2hVfbw3rmKAsRD2Xc9n/QlLutSJEPNuJLkdm8MYu+
 QlST1lpDcL7ZYTQPqWximxe0jg4UqHtfdoUC5nWVz3CG6PTJqOzw62bfHinG6M5+
 4I/Y6G9gsuwpH5SjfZqSTfTggcSB6/SbqLSuLZBAvMWiN2bg2NmW9sfsXvUfULev
 yAOAEgdZkyOpZ7Vx2yVFDH0HeqwB3nx7/UkYmn82A0jO+nV01f6MxJXxx1h/NLnG
 3dMNuEExWiDk7pD4mZQ4Gvl/q46WP37DOvo1KjqxWG/EvCwWNrGmAy5ZpVb8T0Hc
 6E1lWau3PMBY5oWXIsB3c+cH6ecDJSAWmRF56sYJHymZp4RcTM/pyocm2m2Anqt+
 bLKTbqr6k4bpZNQOvqJrkp0aeTldZ6yOE8Pbe/WNhezaAq8XXRpjebcBjKcz9bq1
 ltnKIy2XVUdpCrHZ1+K1zIdg2ENZzDE92S7oF8t98oabVXOqBT86c5oL5PgqHqbH
 DVvrjtZYMQz9hegkvT+yGSxnKEdVSRYr60FQEFF393Ojkwy2kS54U7obl/wGoZpw
 vT5AA90tTUvS1IT1+TXex0C/3UmeH3dLtycErdGN5A31ZHfHqNT6GDki8XHsBFlQ
 HVG4krJ2GEur8CzrOxPf
 =kitn
 -----END PGP SIGNATURE-----
 

🍒 [lldb] Fix TestRealDefinition on older DWARF versions (#165729)

Cherry-picks this fix from the Apple LLDB fork. Ever since we upstreamed
https://github.com/llvm/llvm-project/pull/164011, this test is failing
on our pre-DWARFv5 bots:
```
13:47:54  ======================================================================
13:47:54  FAIL: test_frame_var_after_stop_at_implementation_dsym (TestRealDefinition.TestRealDefinition)
13:47:54     Test that we can find the implementation for an objective C type
13:47:54  ----------------------------------------------------------------------
13:47:54  Traceback (most recent call last):
13:47:54    File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake-matrix/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1804, in test_method
13:47:54      return attrvalue(self)
13:47:54    File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake-matrix/llvm-project/lldb/test/API/lang/objc/real-definition/TestRealDefinition.py", line 60, in test_frame_var_after_stop_at_implementation
13:47:54      self.expect(
13:47:54    File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake-matrix/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2416, in expect
13:47:54      self.runCmd(
13:47:54    File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake-matrix/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1006, in runCmd
13:47:54      self.assertTrue(self.res.Succeeded(), msg + output)
13:47:54  AssertionError: False is not true : Variable(s) displayed correctly
13:47:54  Error output:
13:47:54  error: <user expression 0>:1:12: "_hidden_ivar" is not a member of "(id) _bar"
13:47:54     1 | foo->_bar->_hidden_ivar
13:47:54       | ^
```

Original commit message:

For a while, tests were run with `target.prefer-dynamic-value`
overridden to `no-dynamic-values` – but the override was removed in
[D132382](https://reviews.llvm.org/D132382). At that time, tests that
failed were individually opted in to `no-dynamic-values`.

I don't recall specifics about `TestRealDefinition`, but it currently
fails with `no-dynamic-values`, and that is correct behavior. This
change removes the `no-dynamic-values` override.