aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2025-03-18 18:37:01 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2025-04-02 10:40:20 +0100
commit6621e5a1d1195137a1dd6d917961ab23609a244c (patch)
treeb0e61df05d0f43015b11e9d56c1454197118313b /gcc
parent634215cdc3c569f9a9a247dcd4d9a4d6ce68ad57 (diff)
downloadgcc-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.cc9
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);
}