llvm-6502/lib/Transforms/ObjCARC
Michael Gottesman f23af8bfd8 [objc-arc] Convert the one directional retain/release relation assert to a conditional check + fail.
Due to the previously added overflow checks, we can have a retain/release
relation that is one directional. This occurs specifically when we run into an
additive overflow causing us to drop state in only one direction. If that
occurs, we should bail and not optimize that retain/release instead of
asserting.

Apologies for the size of the testcase. It is necessary to cause the additive
cfg overflow to trigger.

rdar://15377890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194083 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-05 16:02:40 +00:00
..
ARCRuntimeEntryPoints.h
CMakeLists.txt
DependencyAnalysis.cpp
DependencyAnalysis.h
LLVMBuild.txt
Makefile
ObjCARC.cpp
ObjCARC.h
ObjCARCAliasAnalysis.cpp
ObjCARCAliasAnalysis.h
ObjCARCAPElim.cpp
ObjCARCContract.cpp
ObjCARCExpand.cpp
ObjCARCOpts.cpp
ObjCARCUtil.cpp
ProvenanceAnalysis.cpp
ProvenanceAnalysis.h