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 Revert "Give internal classes hidden visibility." 2013-09-11 18:05:11 +00:00
CMakeLists.txt
DependencyAnalysis.cpp
DependencyAnalysis.h [objc-arc] Changed 'mode: c++' => 'C++' at Nick Lewycky's suggestion. Also removed unnecessary mode: c++ lines from .cpp files. 2013-07-10 18:49:00 +00:00
LLVMBuild.txt
Makefile
ObjCARC.cpp
ObjCARC.h [objc-arc] Changed 'mode: c++' => 'C++' at Nick Lewycky's suggestion. Also removed unnecessary mode: c++ lines from .cpp files. 2013-07-10 18:49:00 +00:00
ObjCARCAliasAnalysis.cpp [objc-arc] Changed 'mode: c++' => 'C++' at Nick Lewycky's suggestion. Also removed unnecessary mode: c++ lines from .cpp files. 2013-07-10 18:49:00 +00:00
ObjCARCAliasAnalysis.h Revert "Give internal classes hidden visibility." 2013-09-11 18:05:11 +00:00
ObjCARCAPElim.cpp
ObjCARCContract.cpp
ObjCARCExpand.cpp
ObjCARCOpts.cpp [objc-arc] Convert the one directional retain/release relation assert to a conditional check + fail. 2013-11-05 16:02:40 +00:00
ObjCARCUtil.cpp [objc-arc] Changed 'mode: c++' => 'C++' at Nick Lewycky's suggestion. Also removed unnecessary mode: c++ lines from .cpp files. 2013-07-10 18:49:00 +00:00
ProvenanceAnalysis.cpp
ProvenanceAnalysis.h Revert "Give internal classes hidden visibility." 2013-09-11 18:05:11 +00:00