<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60980>60980</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
incompatible-pointer-types-discards-qualifiers trigger context?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mu578
</td>
</tr>
</table>
<pre>
Hello,
can someone explain?
```
typedef uint32_t xxx_uint32_t;
typedef xxx_uint32_t * xxx_vuint32_t;
xxx_uint32_t vec[10] = { 0 };
// trigger incompatible-pointer-types-discards-qualifiers
// why left operand is evaluated within that context as
// a `unsigned int * const` expr vs `const unsigned int *`
const xxx_vuint32_t expr1 = (const xxx_uint32_t *)vec;
// end trigger
const xxx_vuint32_t expr2 = (xxx_uint32_t *)vec;
const xxx_vuint32_t expr3 = (const xxx_vuint32_t)vec;
const uint32_t * expr4 = (const uint32_t *)vec;
const uint32_t * expr5 = (const xxx_vuint32_t)vec;
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: arm64-apple-darwin22.3.0
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVMGOozAM_ZpwsUDBAVoOHNqtqv2AvY8CMTSrNLBJaDt_vwLa6XQ6s6NFyAjn-dl5jiO9150lqli-ZfkukmM49K46jvlqHdW9eq1-kjE9wx_A-I7xzWIbacH3R-otAV0GI7VlYv8ewQp-feff8DqQohZGbYPAlwDLc7lcXm4uJraP2PeLwHAzO05P8MU-gE_UsHybcpbvljxM7ICttsCBrXb3SNwz3ENwuuvIgbZNfxxk0LWheOi1DeTiqRgfK-0b6ZSP_4zS6FaT8_DAcT68gqE2QD-Qk1aB9kAnaUYZSMFZh4O2EA4yQNPbQJcA8gODBFbw0c7tUKDtsuWmtz6wgk8qOzj5CTT74CP0Tepl-UGrOTpdVMD1HfBeXYblJNsHbciqmz4P_f8iB95yfMP-Vbx4rvHe8M8oHs7HxJC9tftG8m0ZTxz5E8e_ClnsZhgMQWOk7eBEzuveQpolPOEzy-SP04zzhCdYJsiRYblE_pKuo8DEBqQ7FlksJ6ZYSXfWFjERCf90ohYbqUqoUpQyoiotVissxEqk0aFSaVHwrEzbumzTfFXINFV1nStJrSoa0Ua6Qo6CI2bpWuQiTeo1r3lbYC6LdS4wZxmno9QmMeZ0THrXRdr7kaqCl2seGVmT8fO1gWjpDPMiQ5xuEVdNMXE9dp5l3Ggf_J0l6GCo-s9hu83odXqY2EejM9UhhMEzcT2tnQ6HsU6a_shwP-W7fuLB9b-pCQz3c5We4X7exd8AAAD__wlliiI">