summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2018-02-10 02:53:47 +0000
committerEric Fiselier <eric@efcs.ca>2018-02-10 02:53:47 +0000
commit9bfdb770cc7f513546468e9a4867fa9fdce6caaf (patch)
tree51523eb1332d36ad75733f471d2708be267ba386 /clang/lib/Frontend/CompilerInvocation.cpp
parent08225bbed4a26b953b9e43b66cf1f6756917c9c4 (diff)
downloadbcm5719-llvm-9bfdb770cc7f513546468e9a4867fa9fdce6caaf.tar.gz
bcm5719-llvm-9bfdb770cc7f513546468e9a4867fa9fdce6caaf.zip
Use multi-key tree search for {map, set}::{count, equal_range}
Patch from ngolovliov@gmail.com Reviewed as: https://reviews.llvm.org/D42344 As described in llvm.org/PR30959, the current implementation of std::{map, key}::{count, equal_range} in libcxx is non-conforming. Quoting the C++14 standard [associative.reqmts]p3 > The phrase “equivalence of keys” means the equivalence relation imposed by > the comparison and not the operator== on keys. That is, two keys k1 and k2 are > considered to be equivalent if for the comparison object comp, > comp(k1, k2) == false && comp(k2, k1) == false. In the same section, the requirements table states the following: > a.equal_range(k) equivalent to make_pair(a.lower_bound(k), a.upper_bound(k)) > a.count(k) returns the number of elements with key equivalent to k The behaviour of libstdc++ seems to conform to the standard here. llvm-svn: 324799
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud