| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
parimary class and in mrr mode, assume property's default
memory attribute (assign) and to prevent a bogus warning.
// rdar://15859862
llvm-svn: 200238
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A return type is the declared or deduced part of the function type specified in
the declaration.
A result type is the (potentially adjusted) type of the value of an expression
that calls the function.
Rule of thumb:
* Declarations have return types and parameters.
* Expressions have result types and arguments.
llvm-svn: 200082
|
|
|
|
|
|
|
|
| |
user, and attributes implicitly generated to assist in bookkeeping by the compiler. This is done so by table generating a CreateImplicit method for each attribute.
Additionally, remove the optional nature of the spelling list index when creating attributes. This is supported by table generating a Spelling enumeration when the spellings for an attribute are distinct enough to warrant it.
llvm-svn: 199378
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the synthesized AST contained an rvalue DeclRefExpr for 'self'.
Now, it has an lvalue DeclRefExpr wrapped in an lvalue-to-rvalue
ImplicitCastExpr, which is what's generated when an ivar access is written
in the source.
No (intended) functionality change.
llvm-svn: 199225
|
|
|
|
|
|
|
|
|
| |
property has the naming convention that implies 'ownership'.
2) improve on diagnostic and make it property specific.
3) fix the line number in the case of default property
synthesis. // rdar://15757510
llvm-svn: 198905
|
|
|
|
| |
llvm-svn: 198418
|
|
|
|
| |
llvm-svn: 198416
|
|
|
|
|
|
| |
change intended -- this only replaces Boolean uses of getAttr.
llvm-svn: 197648
|
|
|
|
|
|
| |
and methods. rdar://15450637
llvm-svn: 197625
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
property declaration has a memory management
attribute (retain, copy, etc.). Sich properties
are usually overridden to become 'readwrite'
via a class extension (which require the memory
management attribute specified). In the absence of class
extension override, memory management attribute is
needed to produce correct Code Gen. for the
property getter in any case and this warning becomes
confusing to user. // rdar://15641300
llvm-svn: 197251
|
|
|
|
|
|
|
|
| |
property and protocol name.
Implements <rdar://problem/15617839>.
llvm-svn: 197187
|
|
|
|
|
|
|
|
| |
does not
override all of the designated initializers of its superclass.
llvm-svn: 196319
|
|
|
|
|
|
|
| |
property is redeclared as 'weak' in class extension.
// rdar://15465916
llvm-svn: 195146
|
|
|
|
|
|
|
| |
is redeclared as 'weak' in class extension.
// rdar://15304886
llvm-svn: 193453
|
|
|
|
|
|
|
| |
ownership attribute (such as 'copy', 'assign' etc.)
// rdar://15131088
llvm-svn: 192115
|
|
|
|
|
|
|
|
| |
(assign/unsafe_unretained/weak/retain/strong/copy) in super class
to be overridden by a property with any explicit ownership in the
subclass. // rdar://15014468
llvm-svn: 191971
|
|
|
|
|
|
|
|
|
|
| |
of ObjectiveC properties to mean annotation of
NS_RETURNS_INNER_POINTER on its synthesized getter.
This also facilitates more migration to properties when
methods are annotated with NS_RETURNS_INNER_POINTER.
// rdar://14990439
llvm-svn: 191009
|
|
|
|
|
|
| |
<rdar://problem/14354144>
llvm-svn: 185897
|
|
|
|
|
|
| |
abstract class type. // rdar://14261999
llvm-svn: 185710
|
|
|
|
| |
llvm-svn: 185053
|
|
|
|
|
|
|
| |
is declared to have 'assign' attribute.
// rdar://14212998
llvm-svn: 184863
|
|
|
|
|
|
|
| |
property auto-synthesis before knowingit it is to be
auto-synthesized. // rdar://14094682
llvm-svn: 183556
|
|
|
|
|
|
| |
of properties. Fixes // rdar://14085456
llvm-svn: 183542
|
|
|
|
| |
llvm-svn: 182589
|
|
|
|
|
|
|
|
| |
protocols that declare the same property of incompatible
types, issue a warning when class implementation synthesizes
the property. // rdar://13075400
llvm-svn: 182316
|
|
|
|
|
|
|
|
| |
synthesize a property getter method that overrides
a method definition named 'retain' and the like.
Fixes // rdar://13885083
llvm-svn: 182039
|
|
|
|
|
|
|
|
| |
constructor from None
Patch by Robert Wilhelm.
llvm-svn: 181139
|
|
|
|
|
|
|
|
|
|
| |
patch -n r180198.
When reporting on missing property accessor implementation in
categories, do not report when they are declared in primary class,
class's protocol, or one of it super classes or in of the other
categories. // rdar://13713098
llvm-svn: 180580
|
|
|
|
|
|
|
|
| |
property cannot be synthesized because its backing
ivar does not support weak references.
// rdar://13676793
llvm-svn: 180211
|
|
|
|
|
|
|
|
| |
categories, do not report when they are declared in primary class,
class's protocol, or one of it super classes. This is because,
its class is going to implement them. // rdar://13713098
llvm-svn: 180198
|
|
|
|
|
|
| |
to inherit "deprecated".
llvm-svn: 178743
|
|
|
|
|
|
|
|
|
| |
of a property just in case the property's getter happens to be +1.
We won't synthesize a getter for such a property, but we will allow
the user to define a +1 method for it.
rdar://13115896
llvm-svn: 178731
|
|
|
|
|
|
|
|
|
|
|
| |
http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb went back green
before it processed the reverted 178663, so it could not have been the culprit.
Revert "Revert 178663."
This reverts commit 4f8a3eb2ce5d4ba422483439e20c8cbb4d953a41.
llvm-svn: 178682
|
|
|
|
|
|
|
|
|
|
| |
Looks like it broke http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb
Revert "Don't compute a patched/semantic storage class."
This reverts commit 8f187f62cb0487d31bc4afdfcd47e11fe9a51d05.
llvm-svn: 178681
|
|
|
|
|
|
|
|
|
|
|
| |
For variables and functions clang used to store two storage classes. The one
"as written" in the code and a patched one, which, for example, propagates
static to the following decls.
This apparently is from the days clang lacked linkage computation. It is now
redundant and this patch removes it.
llvm-svn: 178663
|
|
|
|
|
|
|
|
| |
about 'isa' ivar being explicitely accessed
when base is a user class object reference.
// rdar://13503456
llvm-svn: 178562
|
|
|
|
|
|
|
| |
its super class or protocols inherit their
availability/deprecated attribute. // rdar://13467644
llvm-svn: 177948
|
|
|
|
|
|
|
|
|
|
| |
is issused for on overriding 'readwrite'
property which is not auto-synthesized.
Buttom line is that if hueristics determine
that there will be a user implemented setter,
no warning will be issued. // rdar://13388503
llvm-svn: 177662
|
|
|
|
|
|
|
|
| |
for existence of user setter before
issuing the warning about non-synthesizable
property. // rdar://13388503
llvm-svn: 176906
|
|
|
|
|
|
|
|
|
|
| |
when property autosynthesis does not synthesize a property.
When property is declared 'readonly' in a super class and
is redeclared 'readwrite' in a subclass. When a property
autosynthesis causes it to share 'ivar' with another property.
// rdar://13388503
llvm-svn: 176889
|
|
|
|
|
|
|
|
| |
declarations to synthesize their ivars in similar
determinstic order so they are laid out in
a determinstic order. // rdar://13192366
llvm-svn: 175214
|
|
|
|
|
|
|
|
| |
a property, the -Wdirect-ivar-access should not warn when
accessing the property's synthesized instance variable.
// rdar://13142820
llvm-svn: 175195
|
|
|
|
|
|
|
|
| |
the "nonatomic" attribute in property redeclaration
in class extension. Also, improved on diagnostics in
this area while at it. // rdar://13156292
llvm-svn: 174821
|
|
|
|
|
|
|
|
|
|
| |
property.
There's no need to refer to the @implementation at all.
Fixes <rdar://problem/13186515>
llvm-svn: 174802
|
|
|
|
|
|
|
|
| |
"auto-synthesized may not work correctly with 'nib' loader"
when 'readonly' property is redeclared 'readwrite' in class
extension. // rdar://13123861
llvm-svn: 174775
|
|
|
|
|
|
|
|
|
| |
lexical declarations looking for properties when we could more
efficiently check for property mismatches at property declaration
time. Good for ~1% of -fsyntax-only time when most of the properties
we're checking against come from an AST file.
llvm-svn: 173079
|
|
|
|
|
|
|
|
|
|
| |
did a redundant traversal of the lexical declarations in the
superclass. Instead, when we declare a new property, look into the
superclass to see whether we're redeclaring the property. Goot for 1%
of -fsyntax-only time on Cocoa.h and a little less than 3% on my
modules test case.
llvm-svn: 173073
|
|
|
|
|
|
|
| |
DeclContext lookups. The performance win is negligible in my tests,
but it's the Right Thing To Do (TM).
llvm-svn: 173068
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
consider (sub)module visibility.
The bulk of this change replaces myriad hand-rolled loops over the
linked list of Objective-C categories/extensions attached to an
interface declaration with loops using one of the four new category
iterator kinds:
visible_categories_iterator: Iterates over all visible categories
and extensions, hiding any that have their "hidden" bit set. This is
by far the most commonly used iterator.
known_categories_iterator: Iterates over all categories and
extensions, ignoring the "hidden" bit. This tends to be used for
redeclaration-like traversals.
visible_extensions_iterator: Iterates over all visible extensions,
hiding any that have their "hidden" bit set.
known_extensions_iterator: Iterates over all extensions, whether
they are visible to normal name lookup or not.
The effect of this change is that any uses of the visible_ iterators
will respect module-import visibility. See the new tests for examples.
Note that the old accessors for categories and extensions are gone;
there are *Raw() forms for some of them, for those (few) areas of the
compiler that have to manipulate the linked list of categories
directly. This is generally discouraged.
Part two of <rdar://problem/10634711>.
llvm-svn: 172665
|
|
|
|
|
|
|
| |
attribute when determining whether we need to see an implementation of
a property. Fixes <rdar://problem/12958191>.
llvm-svn: 171877
|