[gcc r13-3554] libstdc++: Fix dangling reference in filesystem::path::filename()

Jonathan Wakely redi@gcc.gnu.org
Fri Oct 28 23:56:01 GMT 2022


https://gcc.gnu.org/g:49237fe6ef677a81eae701f937546210c90b5914

commit r13-3554-g49237fe6ef677a81eae701f937546210c90b5914
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Oct 28 15:28:09 2022 +0100

    libstdc++: Fix dangling reference in filesystem::path::filename()
    
    The new -Wdangling-reference warning noticed this.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/fs_path.h (path::filename()): Fix dangling
            reference.

Diff:
---
 libstdc++-v3/include/bits/fs_path.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/include/bits/fs_path.h b/libstdc++-v3/include/bits/fs_path.h
index 6e7b366d104..2fc7dcd98c9 100644
--- a/libstdc++-v3/include/bits/fs_path.h
+++ b/libstdc++-v3/include/bits/fs_path.h
@@ -1262,9 +1262,9 @@ namespace __detail
       {
 	if (_M_pathname.back() == preferred_separator)
 	  return {};
-	auto& __last = *--end();
-	if (__last._M_type() == _Type::_Filename)
-	  return __last;
+	auto __last = --end();
+	if (__last->_M_type() == _Type::_Filename)
+	  return *__last;
       }
     return {};
   }


More information about the Libstdc++-cvs mailing list