<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/69835>69835</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Migration to PointerIntPair
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang,
clang:static analyzer,
code-quality
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Endilll
</td>
</tr>
</table>
<pre>
Here is an incomplete list of ad-hoc tagged pointers that should be refactored to use `llvm::PointerIntPair`:
- [ ] clang::ActionResult::Value
- [ ] clang::ASTWriter::DeclOrType::Stored
- [ ] clang::CGBlockInfo::Capture::Data
- [ ] clang::DeclAccessPair::Ptr
- [ ] clang::DeclarationName::Ptr
- [ ] clang::DesignatedInitExpr::Designator::NameOrField
- [ ] clang::IdentifierResolver::Iterator::Ptr
- [ ] clang::LazyOffsetPtr::Ptr
- [ ] clang::NodeGroup::P
- [ ] clang::ObjCMessageExpr::SelectorOrMethod
- [ ] clang::OffsetOfNode::Data
- [ ] clang::Selector::InfoPtr
- [ ] clang::StmtIteratorBase::RawVAPtr
- [ ] clang::Token::PtrData
- [ ] clang::VTableComponent::Value
- [ ] clang::api_notes::FunctionInfo::NullabilityPayload
- [ ] clang::ento::SVal::Data
Apart from inconsistency with newer code that uses `PointerIntPair`, ad-hoc tagged pointers require boilerplate on the side of debug formatters.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVMFu2zgQ_RrpQtiQZMu2Djo4dt01sImDOMgeFyNpJLGlOCo5bNb9-gUlp0Z3USUXGzOaNzPvkXxgrWw0Yh6kd0G6D8FxSyb_pCuplAoLqi75H2hQSCtAC6lL6nqFjEJJy4JqAdWspVIwNA1WoiepGY0V3AIL25JTlShQGKyhZDJYCSbhLIpgFSn1vQsW22CxfRxhR82PIE2winw62gfRdiaC9E4E6V6UCnQzlm9LlqSf0DrFY-YFlMMpxPn5LyMZzRjusVQn83zpcYzPw2oT-N3nO0Xl16Ou6ZqAnp25wvfAMAH207ZlidYO7EbGbN5BgAHP8gE6_BjEnyQwVkct-dM_vfk1T9fY9zuZg0Q1xfdYoWZZSzRPaEl9fxPuyGhuvaY3-hN-XE51bZF93QcAD1ThZ0OuvxZPlJ6KL7t7tBYavFE9o0J_yU7mHrmlKX7jXqfaj_zQGb71vsqga5rmcuaO38S6A3sd8gSvL--I8ExfUf9U652tXp6hULijrieN-oNvAXr5tyZGO4YHp4fndLvbD04pKKSSfHmEiyKYUhI1X2HnF1D_1XL83fZgWNSGusFBtJWWUZcX8Sq5FRpf0YiSKhxdw1m03h7-bwrJ7nd2Y_CbkwZFQVKh6RUwCtKCWxRWVuiNqsLCNaIm0wF7zDys8kWVLTIIMY9X2XqzSdebOGzz9RqiVZxiiss426yzJW5wGcXRJoO4iDEJZZ5EySKOkjiO0lUSz-syKqCOsuUG6zSLFsEywg6kmnuLm5NpQmmtw3yVbRZpqKBAZQfLTZJRyiQJkt3PaLG1DCxLARrU5Qea23eqcPbNgT8bn0z3ocn9kFnhGhssI2_L9jaWJavB3MfG6V7cy2Y0Fm_Ev0ocOqPylrkfbkZyCJJDI7l1xbykLkgOg1-Pf7Pe0BcsOUgOAzMbJIeB3L8BAAD__9iL7yg">