]> granicus.if.org Git - clang/commit
Disable type merging with gc attributes. This has a number of nasty
authorEli Friedman <eli.friedman@gmail.com>
Mon, 1 Jun 2009 01:22:52 +0000 (01:22 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Mon, 1 Jun 2009 01:22:52 +0000 (01:22 +0000)
commit852d63b806c5cbd730c6b9d696e2e27d02546b49
tree1d15221129c74f208498c64bf5d87482c03d9bd4
parent44dfc98b68a482ab92e691a9215167c82515f359
Disable type merging with gc attributes.  This has a number of nasty
properties at the moment:

1. It allows stuff like "__strong id x; __weak id x;".

2. For constructs like "__strong id x; id x;", subsequent references to
x lose the objc_gc attribute.

3. This incorrectly allows merges involving the address_space attribute.

4. Constructs like "id x; /* some code using x */ __weak id x;" don't
apply the objc_gc attribute consistently to all uses of x.

The first three can probably be fixed relatively easily; the fourth
would be extremely difficult to fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72683 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/ASTContext.cpp
test/SemaObjC/objc2-merge-gc-attribue-decl.m