https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110075

Viktor Ostashevskyi <ostash at ostash dot kiev.ua> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ostash at ostash dot kiev.ua

--- Comment #4 from Viktor Ostashevskyi <ostash at ostash dot kiev.ua> ---
I have even simpler reproducer:

---
class X{};
const X x1;
const X x2;

const X& get(const int& i)
{
   return i == 0 ? x1 : x2;
}

void foo() {
    [[maybe_unused]] const X& x = get(10);
}
---

<source>: In function 'void foo()':
<source>:23:31: warning: possibly dangling reference to a temporary
[-Wdangling-reference]
   23 |     [[maybe_unused]] const X& x = get(10);
      |                               ^
<source>:23:38: note: the temporary was destroyed at the end of the full
expression 'get(10)'
   23 |     [[maybe_unused]] const X& x = get(10);
      |

Reply via email to