https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109470
--- Comment #6 from Johannes Kellner <johannes.kellner at wandelbots dot com> --- Ok, Ok :) It's not to me to argue this. It's just an unexpected behavior (something I was unaware off/ something that does not happen when doing the same code with other compilers clang/msvc). And in my humble opinion - `full-expression containing the call` could be understood as - until end of enclosing scope. Or at least if understood this way, I would not have the uninitialized variable :) I just had a stupid error and found this as the reason. We discussed it and even others in my team, assumed that it might be a bug. As we were not able to reproduce this behavior in other compilers we tested. Nor did see this as `invalid` code - `ugly` yes, but not `invalid`. And yes, this code is 'not the best possible way'... Well maybe you take this ticket as a reason to `review` the interpretation, that `full-expression containing the call` does not mean until the `end of enclosing scope`... For me, I'm fine with current outcome. Thank you anyway for the quick, very friendly and professional responses! Best regards