<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63020>63020</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang rejects valid code when [[clang::exclude_from_explicit_instantiation]] is used on function-local classes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:frontend,
rejects-valid
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
philnik777
</td>
</tr>
</table>
<pre>
Clang complains that `result` is not a member for class `_MoveSegment` for this code, which is obviously wrong:
```
template <class> void func() {
struct _MoveSegment {
int result;
[[clang::exclude_from_explicit_instantiation]] void member() { result; }
};
[](auto v) { v.member(); }(_MoveSegment{});
}
int main(int, char **) { func<int>(); }
```
([Godbolt](https://godbolt.org/z/ddvW68WGh))
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykU01vqzoQ_TXDZpQIhvCRBYsmNF291Vt0GRnsgN8zdmQb2t5ff2WTKGl1d1eyjPDMnHN8xsOck4MWooHiAEWbsNmPxjbXUSot_6-qKukM_2qOiukBezNdFZPaoR-ZRyhTK9ysPJQpSofaeGQ4iakTFi_GYq-YcyHt_I9ZxL9imISOySHoR-mwN1wAHfFjlP0YMEy3SDM79YUf1ugB8hdIW0jve5neVvz1IujxAiE_Ri7IX3ExkuNl1j1QDbRHqA5rNqLzdu49Pqt5DiNK7fF2pfzwTIzRnkMfbAia8hfx2auZi_PFmuksPq9K9tKfpXaeaS-Zl0ZD0ULRroJWVx6SHjQIVXsnqdqfvCtxC1Sz2Rtc7uXL9hnxDkP1N6erQzzcP0DvVOserjsxqYFqqX3oQz8yi0Avca1M0cr8GBLy1-90f-pJyCgOb4Z3RvlV-ej91QXX6AR0GtbQ1tgB6PQL6MT58l7W729jgKZ9wpuc7_M9S0STlXWxq6pdVSRjw3c8o71I66zvsoKqjqgrq13eZYJK6upENpRSnhZ5SmmWZcWWWFXyMr3UXdaxfXWBXSomJtVWqWUKChLp3CyaMlQkinVCuTgJRPdWX6zRXmgOREBHILLiP9F7t1mYkvG0aBPbBMBNNw8OdqmSzrsHhZdeidsE3YoxFsfXjx-j0H_zvKTD2QmORsdWhchGmZ6pdfyES2armh89kH6cu21vJqBTEHr7bK7WBIFAp2iMAzpFb34HAAD___ajQlE">