<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/clang/test/CodeGenObjC/blocks.m, branch meklort-10.0.0</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.0</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.0'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2018-07-26T16:51:21+00:00</updated>
<entry>
<title>[CodeGen][ObjC] Make block copy/dispose helper functions exception-safe.</title>
<updated>2018-07-26T16:51:21+00:00</updated>
<author>
<name>Akira Hatanaka</name>
<email>ahatanaka@apple.com</email>
</author>
<published>2018-07-26T16:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cb6a933c9bd010f06b0ae50893afb3f821bd5fe0'/>
<id>urn:sha1:cb6a933c9bd010f06b0ae50893afb3f821bd5fe0</id>
<content type='text'>
When an exception is thrown in a block copy helper function, captured
objects that have previously been copied should be destructed or
released. Similarly, captured objects that are yet to be released should
be released when an exception is thrown in a dispose helper function.

rdar://problem/42410255

Differential Revision: https://reviews.llvm.org/D49718

llvm-svn: 338041
</content>
</entry>
<entry>
<title>Define weak and __weak to mean ARC-style weak references, even in MRC.</title>
<updated>2015-10-22T18:38:17+00:00</updated>
<author>
<name>John McCall</name>
<email>rjmccall@apple.com</email>
</author>
<published>2015-10-22T18:38:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=460ce58fa6a165ebad98c848aaec2f09cefe7603'/>
<id>urn:sha1:460ce58fa6a165ebad98c848aaec2f09cefe7603</id>
<content type='text'>
Previously, __weak was silently accepted and ignored in MRC mode.
That makes this a potentially source-breaking change that we have to
roll out cautiously.  Accordingly, for the time being, actual support
for __weak references in MRC is experimental, and the compiler will
reject attempts to actually form such references.  The intent is to
eventually enable the feature by default in all non-GC modes.
(It is, of course, incompatible with ObjC GC's interpretation of
__weak.)

If you like, you can enable this feature with
  -Xclang -fobjc-weak
but like any -Xclang option, this option may be removed at any point,
e.g. if/when it is eventually enabled by default.

This patch also enables the use of the ARC __unsafe_unretained qualifier
in MRC.  Unlike __weak, this is being enabled immediately.  Since
variables are essentially __unsafe_unretained by default in MRC,
the only practical uses are (1) communication and (2) changing the
default behavior of by-value block capture.

As an implementation matter, this means that the ObjC ownership
qualifiers may appear in any ObjC language mode, and so this patch
removes a number of checks for getLangOpts().ObjCAutoRefCount
that were guarding the processing of these qualifiers.  I don't
expect this to be a significant drain on performance; it may even
be faster to just check for these qualifiers directly on a type
(since it's probably in a register anyway) than to do N dependent
loads to grab the LangOptions.

rdar://9674298

llvm-svn: 251041
</content>
</entry>
<entry>
<title>[opaque pointer types] Explicit non-pointer type for call expressions</title>
<updated>2015-04-16T23:25:00+00:00</updated>
<author>
<name>David Blaikie</name>
<email>dblaikie@gmail.com</email>
</author>
<published>2015-04-16T23:25:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d6c88ece215ac0d9ec5519803beb3a16c7bffed1'/>
<id>urn:sha1:d6c88ece215ac0d9ec5519803beb3a16c7bffed1</id>
<content type='text'>
(migration for recent LLVM change to textual IR for calls)

llvm-svn: 235147
</content>
</entry>
<entry>
<title>Update Clang tests to handle explicitly typed load changes in LLVM.</title>
<updated>2015-02-27T21:19:58+00:00</updated>
<author>
<name>David Blaikie</name>
<email>dblaikie@gmail.com</email>
</author>
<published>2015-02-27T21:19:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a953f2825ba916302b1008fa071fff336ec67bf1'/>
<id>urn:sha1:a953f2825ba916302b1008fa071fff336ec67bf1</id>
<content type='text'>
llvm-svn: 230795
</content>
</entry>
<entry>
<title>Update Clang tests to handle explicitly typed gep changes in LLVM.</title>
<updated>2015-02-27T19:18:17+00:00</updated>
<author>
<name>David Blaikie</name>
<email>dblaikie@gmail.com</email>
</author>
<published>2015-02-27T19:18:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=218b78319277e27d8f283c85369f968ab580015b'/>
<id>urn:sha1:218b78319277e27d8f283c85369f968ab580015b</id>
<content type='text'>
llvm-svn: 230783
</content>
</entry>
<entry>
<title>Fix a tranche of comment, test and doc typos</title>
<updated>2013-12-05T16:25:25+00:00</updated>
<author>
<name>Alp Toker</name>
<email>alp@nuanti.com</email>
</author>
<published>2013-12-05T16:25:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f6a24ce40fd5e807a5e71b17d0c04866e195fb87'/>
<id>urn:sha1:f6a24ce40fd5e807a5e71b17d0c04866e195fb87</id>
<content type='text'>
llvm-svn: 196510
</content>
</entry>
<entry>
<title>CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.</title>
<updated>2013-08-15T06:47:53+00:00</updated>
<author>
<name>Stephen Lin</name>
<email>stephenwlin@gmail.com</email>
</author>
<published>2013-08-15T06:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4362261b0093730e46ffcad910e8b465cf0bb1cb'/>
<id>urn:sha1:4362261b0093730e46ffcad910e8b465cf0bb1cb</id>
<content type='text'>
llvm-svn: 188447
</content>
</entry>
<entry>
<title>Unify return type checking for functions and ObjC methods.  Move all the</title>
<updated>2013-06-14T21:14:10+00:00</updated>
<author>
<name>Eli Friedman</name>
<email>eli.friedman@gmail.com</email>
</author>
<published>2013-06-14T21:14:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=31a5bcc24ea1145de4c9470f6b803f4decf27c87'/>
<id>urn:sha1:31a5bcc24ea1145de4c9470f6b803f4decf27c87</id>
<content type='text'>
random checks for ObjC object return types to SemaType.cpp.

Fixes issue with ObjC method type checking reported on cfe-dev.

llvm-svn: 184006
</content>
</entry>
<entry>
<title>Bugfix/Followup for r177086.</title>
<updated>2013-03-29T19:20:35+00:00</updated>
<author>
<name>Adrian Prantl</name>
<email>aprantl@apple.com</email>
</author>
<published>2013-03-29T19:20:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0f6df00e4d64e74ebb9621edf9beb0ced42e1697'/>
<id>urn:sha1:0f6df00e4d64e74ebb9621edf9beb0ced42e1697</id>
<content type='text'>
* Store the .block_descriptor (instead of self) in the alloca so we
  can guarantee that all captured variables are available at -O0.
* Add the missing OpDeref for the alloca.
rdar://problem/12767564

llvm-svn: 178361
</content>
</entry>
<entry>
<title>Fix the required args count for variadic blocks.</title>
<updated>2012-12-07T07:03:17+00:00</updated>
<author>
<name>John McCall</name>
<email>rjmccall@apple.com</email>
</author>
<published>2012-12-07T07:03:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=c818bbb8b283739934f42f328711bbd900984c8d'/>
<id>urn:sha1:c818bbb8b283739934f42f328711bbd900984c8d</id>
<content type='text'>
We were emitting calls to blocks as if all arguments were
required --- i.e. with signature (A,B,C,D,...) rather than
(A,B,...).  This patch fixes that and accounts for the
implicit block-context argument as a required argument.
In addition, this patch changes the function type under which
we call unprototyped functions on platforms like x86-64 that
guarantee compatibility of variadic functions with unprototyped
function types;  previously we would always call such functions
under the LLVM type T (...)*, but now we will call them under
the type T (A,B,C,D,...)*.  This last change should have no
material effect except for making the type conventions more
explicit;  it was a side-effect of the most convenient implementation.

llvm-svn: 169588
</content>
</entry>
</feed>
