https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102220
Bug ID: 102220 Summary: Conversion from cv void* to object-type* not rejected during constant evaluation Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: johelegp at gmail dot com CC: johelegp at gmail dot com Target Milestone: --- See https://godbolt.org/z/ecYjGsWo7. ```C++ #include <cassert> int main() { [i=0]() consteval /*mutable*/ { ++*(int*)(void*)&i; assert(i == 1); }(); } ``` A minimal reproduction: ```C++ int main() { [i=0]() consteval { (void)+*(const int*)(const void*)&i; }(); } ``` Discovered at https://cpplang.slack.com/archives/C263VAF2B/p1630942490163700?thread_ts=1630937296.159200&cid=C263VAF2B.