https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119814
Bug ID: 119814 Summary: requires-clauses think void can be passed to ... Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: blubban at gmail dot com Target Milestone: --- void a(...); template<auto v> bool b() { return requires { v(v(1)); }; } bool c() { return b<a>(); } Expected: False. a(1) is void, and cannot be passed to a(), even if it's hidden behind a template parameter. Actual: True. https://godbolt.org/z/rvv4aWj15 See also bug 119813, though I suspect the actual root causes are different.