1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/include/llvm/ADT
Duncan P. N. Exon Smith 2bc0121c12 ADT: Require explicit ilist iterator/pointer conversions
Disallow implicit conversions between ilist iterators and element
points.  Explicit conversions still work of course.

This is the first step toward removing the undefined behaviour in
`ilist` and `iplist`:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091115.html

The motivation for removing the implicit iterators is that I came across
real bugs (that were *really* getting lucky).  More details and some
brief discussion later in that thread:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091617.html

Note: if you have out-of-tree code, it should be fairly easy to revert
this patch downstream while you update your out-of-tree call sites.
Note that these conversions are occasionally latent bugs (that may
happen to "work" now, but only because of getting lucky with UB;
follow-ups will change your luck).  When they are valid, I suggest using
`->getIterator()` to go from pointer to iterator, and `&*` to go from
iterator to pointer.

llvm-svn: 252372
2015-11-07 00:02:32 +00:00
..
APFloat.h Remove roundingMode argument in APFloat::mod 2015-09-21 19:29:25 +00:00
APInt.h Fix APInt value initialization to give a zero value as any sane integer type 2015-09-04 04:08:36 +00:00
APSInt.h Reformat headers in ADT and Support partially. 2015-08-10 04:22:36 +00:00
ArrayRef.h Add hashing and DenseMapInfo for ArrayRef 2015-10-18 14:04:56 +00:00
BitVector.h
DAGDeltaAlgorithm.h
DeltaAlgorithm.h Whitespace. 2015-08-10 04:22:09 +00:00
DenseMap.h DenseMap: we're trying to call the reserved global placement allocation 2015-10-02 00:46:33 +00:00
DenseMapInfo.h Add hashing and DenseMapInfo for ArrayRef 2015-10-18 14:04:56 +00:00
DenseSet.h Whitespace. 2015-08-10 04:22:09 +00:00
DepthFirstIterator.h Reformat headers in ADT and Support partially. 2015-08-10 04:22:36 +00:00
edit_distance.h Reduce memory usage of ComputeEditDistance() by (almost) 50% 2015-07-13 21:33:21 +00:00
EpochTracker.h
EquivalenceClasses.h
FoldingSet.h [ADT] Teach FoldingSet to be movable. 2015-08-16 23:17:27 +00:00
GraphTraits.h
Hashing.h
ilist_node.h IR: Remove implicit iterator conversions from lib/IR, NFC 2015-10-08 23:49:46 +00:00
ilist.h ADT: Require explicit ilist iterator/pointer conversions 2015-11-07 00:02:32 +00:00
ImmutableList.h Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups. 2015-09-29 18:02:48 +00:00
ImmutableMap.h Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups. 2015-09-29 18:02:48 +00:00
ImmutableSet.h
IndexedMap.h
IntEqClasses.h
IntervalMap.h
IntrusiveRefCntPtr.h Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups. 2015-09-29 18:02:48 +00:00
iterator_range.h Remove iterator_range::end. 2015-09-24 00:23:07 +00:00
iterator.h
MapVector.h
None.h
Optional.h Allow Optionals to be compared to None 2015-08-19 23:07:27 +00:00
PackedVector.h Simplify PackedVector by removing user-defined special members that aren't any different than the defaults 2015-08-12 23:26:12 +00:00
PointerIntPair.h Reformat headers in ADT and Support partially. 2015-08-10 04:22:36 +00:00
PointerUnion.h
PostOrderIterator.h Remove unnecessary argument in ipo iterator 2015-10-13 07:26:04 +00:00
PriorityQueue.h
SCCIterator.h
ScopedHashTable.h Fix missing C++ mode comment 2015-09-21 15:59:41 +00:00
SetOperations.h [SimplifyCFG] Merge conditional stores 2015-11-04 15:28:04 +00:00
SetVector.h Whitespace. 2015-08-10 04:22:09 +00:00
SmallBitVector.h Simplify SmallBitVector::applyMask by consolidating common code for 32- and 64-bit builds 2015-09-18 15:08:24 +00:00
SmallPtrSet.h Reformat headers in ADT and Support partially. 2015-08-10 04:22:36 +00:00
SmallSet.h Whitespace. 2015-08-10 04:22:09 +00:00
SmallString.h
SmallVector.h [ADT] Force inline several super boring and unusually hot methods on 2015-09-10 09:46:47 +00:00
SparseBitVector.h Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups. 2015-09-29 18:02:48 +00:00
SparseMultiSet.h
SparseSet.h
Statistic.h
STLExtras.h Prefix make_reverse_iterator with llvm namespace. 2015-07-30 00:40:42 +00:00
StringExtras.h
StringMap.h Reformat headers in ADT and Support partially. 2015-08-10 04:22:36 +00:00
StringRef.h [ADT] Remove a couple of the always inline attributes I added. 2015-09-21 18:02:24 +00:00
StringSet.h
StringSwitch.h [ADT] Micro-optimize and force inlining for string switches. 2015-09-10 09:25:59 +00:00
TinyPtrVector.h Whitespace. 2015-08-10 04:22:09 +00:00
Triple.h ARM: add watchOS default version support function. 2015-10-28 22:57:14 +00:00
Twine.h
UniqueVector.h Fix ADT/UniqueVector.h to resolve implicit dependency. 2015-10-24 00:27:22 +00:00
VariadicFunction.h