<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59183>59183</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Assertion failed: (OVMode == OV_Transparent && "Should not appear alongside OVEs"), function BuildParentMap, file ParentMap.cpp
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dcci
      </td>
    </tr>
</table>

<pre>
    ```
% /Users/davide/work/llvm/build-release-assertion/bin/clang reduced.mm -fobjc-arc -c -Warc-repeated-use-of-weak   
reduced.mm:17:13: warning: missing 'typename' prior to dependent type name ah::l; implicit 'typename' is a C++20 extension [-Wc++20-extensions]
  using l = ah::l;
            ^
            typename 
reduced.mm:18:14: warning: missing 'typename' prior to dependent type name h<l, ah>::i; implicit 'typename' is a C++20 extension [-Wc++20-extensions]
  using ai = h<l, ah>::i;
             ^
             typename 
reduced.mm:25:3: warning: missing 'typename' prior to dependent type name k<ah>::ai; implicit 'typename' is a C++20 extension [-Wc++20-extensions]
  k<ah>::ai ai;
  ^
  typename 
reduced.mm:39:6: warning: function definition inside an Objective-C container is deprecated [-Wfunction-def-in-objc-container]
void d() {
     ^
Assertion failed: (OVMode == OV_Transparent && "Should not appear alongside OVEs"), function BuildParentMap, file ParentMap.cpp, line 36.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
```

Testcase:
```
namespace {
namespace {
template <class c, class m> struct aa {
  c b;
  m f;
};
} // namespace
} // namespace
typedef int g;
namespace ac {
namespace {
template <class a, class> struct h {
  using i = a;
};
template <class j> struct k {
  using ah = j;
  using l = ah::l;
  using ai = h<l, ah>::i;
};
template <class a> struct aj {
  typedef a l;
};
template <class am, class a, class ao = aj<aa<am, a>>> struct ap {
  typedef ao ah;
  k<ah>::ai ai;
};
} // namespace
} // namespace ac
namespace aura {
using az = g;
}
@interface ba
@end
@interface bb
@property ba *bc;
@property ac::ap<aura::az, ba *> bd;
@end
@interface e
void d() {
  bb *bg;
  bg.bd = {0, bg.bc};
}
@end
```




</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVVGPmzgQ_jXkZUQUICSbBx6ySfrUaiu1t308DbZJnABGttnt9tff2GwI3XDptWqliyzjePDM930zHnLFX7JgMXsds20wWwdxCkH87i8jtKEnxyfJBS2elT7RoyyfKnrkrSx5qEUp0IgQDb1tpaqdRbqZlVjvQQveMsGnVQVhofIjC1EzCGl8oQUdbwRawcOWfKgifBZ4AoAOx-VskKyjpZsSmuAZdS3rvVtW0hhaEtylfWlEjRUBXUKjpdJgFXDyX3NRW3BmcHbAA52kUQbJPciqKSWT9q0HaQBhE8T3NOIZiK9W1IboQZDeh1_Y2RD2BhOk2w42QOsxlRAk2--ine2XX5DurjfPOEZluHPT_DfIQLg2ZRBvPMJdB1L-YUlQek3-LfS1FOMC3VQoTmn6HXVyIpQDgPjnxLmKBDiUY6DBLeLJiqbFG-JFWzN3LYlhIWvpl5IAcLoHNTzkR0HmJxFugKnaoqyFdlxIDy2Yu5kdgbObkNyEsg79Te5P9FSelOTAg_guiFcQLIcJ7Umsz50CCpSl4A4lnXh4_KAIFJWHq5CHx78_a6xNg9olJYgXNOgRfzqotuRQKwvYUO_QgKWq957Qw-OO-lVMsV1t9czvXaP66B19wMabKC70O1PW-N2SqECymHYwP77frT_twLR5RdlGyFvXzBqlrauXg7WNcdmK39HYS3to8ylT1aU9ukfYaOUEpr9Uf61w3ZRk55QBVraE2B4EMI3mADmyk9XIhENC2tNJJkgpDka1utt2J6nPKiZ9YnRbg2FaNvYV8ts27ufPwlhGHdqBHXvLVRPJzMQlXyNbVlDdU1TKz4YauzHAHKJuScVHQlndMhIKh3lnkA_quIKi_xcst8M1dEJCH_pHFncRqBZJSQv73tMFObKf5IM9nwGbw5BM18K6DoajRK69HgfOTtfO8OC9HQci_ejb8RON9DY0HGbtOMR21hah_K--qks14GCpOhpH19_QTf499Fh3w_jNaHzlefX7N9vkrxcU1cpV9bR6UMevkn_zZPbfRewW8xmVodCFO5pjv0lflLEX8n6TLnlDvfCFDhGqdc4uvgdGgtfxbRx_Qvb695vTsjvppMz58PR4bHG7Tee5h7EfaJ7vpzn3xOm9mY9IO-yN2iNhx3rRcJ6ILFosVvEiWiXRhGcJXyUrnFhpS5H9L78Rk1aX2a83_nQV3SWTQybSuygtijRPuZjxJdEWiMuoWEaJmC-TZFJiLkqT0XeXgNbiGbwLBzrdTmQWz-I4iuL5LEnjaDbFOCnSeTrPuVjOyYFLQkWiTR2OqdL7ic48JPqAGTKW0lhzMdI1lftaCB-O_GNrD0pnnDE58XEzj_sfJ32TcA">