[ObjCARC] Turn off ignoring unwind edges in ObjCARC when -fno-objc-arc-exception...
authorMichael Gottesman <mgottesman@apple.com>
Wed, 16 Jan 2013 06:32:39 +0000 (06:32 +0000)
committerMichael Gottesman <mgottesman@apple.com>
Wed, 16 Jan 2013 06:32:39 +0000 (06:32 +0000)
commit09c84f13c6662e680f86e16f2474adf6177cf52f
treee0fcf773d98019069dd5195c86836adf9de61e67
parent457ee1a12e2c52624af7fdb81cf938f6d8d96572
[ObjCARC] Turn off ignoring unwind edges in ObjCARC when -fno-objc-arc-exception is enabled due to it's affect on correctness.

Specifically according to the semantics of ARC -fno-objc-arc-exception simply
states that it is expected that the unwind path out of a call *MAY* not release
objects. Thus we can have the situation where a release gets moved into a catch
block which we ignore when we remove a retain/release pair resulting in (even
though we assume the program is exiting anyways) the cleanup code path
potentially blowing up before program exit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172599 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/ObjCARC.cpp