https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113551
--- Comment #15 from Yuxuan Shui <yshuiv7 at gmail dot com> --- (In reply to Marek Polacek from comment #14) > I don't see a complete testcase that I could bisect. Please use the code sample in the original comment. since there are questions that the manually unswitched version is undefined. link that code with this: #include<stdlib.h> struct obj { int __pad; int i; }; /* aborts when called with NULL */ int assert_not_null(void *n) { if (!n) abort(); } void bug(struct obj **root, struct obj *dso); int main() { struct obj x = {}; struct obj *y = &x; bug(y, NULL); }