aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorjeanPerier <jperier@nvidia.com>2025-07-04 14:42:42 +0200
committerGitHub <noreply@github.com>2025-07-04 14:42:42 +0200
commit274e798a9832b582b29b069009dbab123070a940 (patch)
tree4268410daff1fe578057bf8931c6e8eaf87fc33e /flang/lib/Frontend/CompilerInvocation.cpp
parent0ba59587fa98849ed5107fee4134e810e84b69a3 (diff)
downloadllvm-274e798a9832b582b29b069009dbab123070a940.zip
llvm-274e798a9832b582b29b069009dbab123070a940.tar.gz
llvm-274e798a9832b582b29b069009dbab123070a940.tar.bz2
[flang] use set_union instead of merge in added DerivedTypeCache (#147024)
When merging the list of recursive reference under two components, duplicates should be removed. If the recursive reference to parents nodes (referred by depth of the parents node) are [1, 2, 5] and [4, 5], the new list should be [1,2,4,5]. With std::merge the order was correct but 5 was duplicated. Use std::set_union instead that removes duplicates. With this patch Fujitsu tests 0394_0030.f90 [1] and 0390_0230.f90 [2]() finally compile with -g in about 10s. Their compilation was hanging before #146543, and they were now hitting an error: "LLVM ERROR: SmallVector unable to grow" which is fixed by this patch. [1]: https://github.com/fujitsu/compiler-test-suite/blob/0d02267bb98b6bfdf46d1f6bbd92e9781c24356c/Fortran/0394/0394_0030.f90 [2]: https://github.com/fujitsu/compiler-test-suite/blob/0d02267bb98b6bfdf46d1f6bbd92e9781c24356c/Fortran/0390/0390_0230.f90
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions