llvm-6502/lib
Justin Bogner 981eb59138 Path: Stop claiming path::const_iterator is bidirectional
path::const_iterator claims that it's a bidirectional iterator, but it
doesn't satisfy all of the contracts for a bidirectional iterator.
For example, n3376 24.2.5 p6 says "If a and b are both dereferenceable,
then a == b if and only if *a and *b are bound to the same object",
but this doesn't work with how we stash and recreate Components.

This means that our use of reverse_iterator on this type is invalid
and leads to many of the valgrind errors we're hitting, as explained
by Tilmann Scheller here:

    http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140728/228654.html

Instead, we admit that path::const_iterator is only an input_iterator,
and implement a second input_iterator for path::reverse_iterator (by
changing const_iterator::operator-- to reverse_iterator::operator++).
All of the uses of this just traverse once over the path in one
direction or the other anyway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214737 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-04 17:36:41 +00:00
..
Analysis
AsmParser
Bitcode UseListOrder: Fix blockaddress use-list order 2014-08-01 22:27:19 +00:00
CodeGen [x86] Don't add nodes to the combined set (and prune subsequent 2014-08-03 23:10:59 +00:00
DebugInfo
ExecutionEngine [MCJIT] Fix an overly-aggressive check in RuntimeDyldMachOARM. 2014-08-02 03:00:49 +00:00
IR [LLVM-C] Add LLVM{IsConstantString,GetAsString,GetElementAsConstant}. 2014-08-03 23:54:16 +00:00
IRReader
LineEditor
Linker
LTO
MC MC: virtualise EmitWindowsUnwindTables 2014-08-03 18:51:26 +00:00
Object
Option
ProfileData InstrProf: Allow multiple functions with the same name 2014-08-01 22:50:07 +00:00
Support Path: Stop claiming path::const_iterator is bidirectional 2014-08-04 17:36:41 +00:00
TableGen
Target Refactor SPRG instructions. 2014-08-04 17:26:15 +00:00
Transforms [SimplifyCFG] fix accessing deleted PHINodes in switch-to-table conversion. 2014-08-02 23:41:54 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile