diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2025-03-18 18:37:01 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2025-04-02 10:40:20 +0100 |
commit | 6621e5a1d1195137a1dd6d917961ab23609a244c (patch) | |
tree | b0e61df05d0f43015b11e9d56c1454197118313b /gcc | |
parent | 634215cdc3c569f9a9a247dcd4d9a4d6ce68ad57 (diff) | |
download | gcc-6621e5a1d1195137a1dd6d917961ab23609a244c.zip gcc-6621e5a1d1195137a1dd6d917961ab23609a244c.tar.gz gcc-6621e5a1d1195137a1dd6d917961ab23609a244c.tar.bz2 |
cobol: Fix incorrect use of std::remove_if
The call to std::remove_if used here doesn't remove any elements, it
just overwrites the "removed" elements with later elements, leaving the
total number of elements unchanged. Use std::list::remove_if to actually
remove those unwanted elements from the list.
gcc/cobol/ChangeLog:
* symfind.cc (finalize_symbol_map2): Use std::list::remove_if
instead of std::remove_if.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cobol/symfind.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/cobol/symfind.cc b/gcc/cobol/symfind.cc index 2687fdb..8995715 100644 --- a/gcc/cobol/symfind.cc +++ b/gcc/cobol/symfind.cc @@ -128,11 +128,10 @@ finalize_symbol_map2() { for( auto& elem : symbol_map2 ) { auto& fields( elem.second ); - std::remove_if( fields.begin(), fields.end(), - []( auto isym ) { - auto f = cbl_field_of(symbol_at(isym)); - return f->type == FldInvalid; - } ); + fields.remove_if( []( auto isym ) { + auto f = cbl_field_of(symbol_at(isym)); + return f->type == FldInvalid; + } ); if( fields.empty() ) empties.insert(elem.first); } |