| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
which specifies couple of (optional) method selectors
for bridging a CFobject to or from an ObjectiveC
object. This is wip. // rdsr://15499111
llvm-svn: 196408
|
|
|
|
|
|
|
|
|
|
| |
designated initializers of an interface.
If the interface declaration does not have methods marked as designated
initializers then the interface inherits the designated initializers of
its super class.
llvm-svn: 196315
|
|
|
|
|
|
| |
It only applies to methods of init family in an interface declaration.
llvm-svn: 196314
|
|
|
|
|
|
| |
reduces the amount of duplicate code in the handler. No functional change intended.
llvm-svn: 196165
|
|
|
|
|
|
| |
attribute kind test were superfluous. No functional change intended.
llvm-svn: 196162
|
|
|
|
|
|
| |
attribute arguments (the common attribute handler already does this). Switching to use the simple attribute handler. No functional change intended.
llvm-svn: 196155
|
|
|
|
|
|
| |
options to test in tablegen.
llvm-svn: 196138
|
|
|
|
|
|
| |
cf_audited_transfer and cf_unknown_transfer attributes into separate helper methods for simplicity. No functional changes intended.
llvm-svn: 196126
|
|
|
|
|
|
| |
diagnostic involved to be more accurate -- for C++ code, it will now report that weak applies to variables, functions or classes. Added additional test case for this.
llvm-svn: 196120
|
|
|
|
|
|
| |
__w64 specifically. Renamed and removed some unused code. No functional change intended.
llvm-svn: 196116
|
|
|
|
| |
llvm-svn: 196110
|
|
|
|
|
|
| |
functional change intended.
llvm-svn: 196107
|
|
|
|
|
|
| |
Affects: guarded_var, pt_guarded_var, guarded_by, pt_guarded_by, acquired_after and acquired_before. No functional change intended.
llvm-svn: 196105
|
|
|
|
|
|
| |
functional change intended.
llvm-svn: 195964
|
|
|
|
|
|
| |
attribute. No functional change intended.
llvm-svn: 195963
|
|
|
|
|
|
| |
the custom subject for the ibaction attribute.
llvm-svn: 195960
|
|
|
|
|
|
| |
the semantic checking was already automated.
llvm-svn: 195866
|
|
|
|
|
|
| |
diagnostic for attribute subjects. In turn, this allows the Subjects to be enabled for some more attributes and improves diagnostics. Updated a test case based on the improved diagnostic.
llvm-svn: 195864
|
|
|
|
|
|
| |
test cases to be updated because the original diagnostic was about applying to methods as well as functions, but the semantic checking disallowed methods.
llvm-svn: 195862
|
|
|
|
|
|
| |
case. Previously, would issue a "warning ignored" diagnostic instead of the more specific "only applies to."
llvm-svn: 195851
|
|
|
|
| |
llvm-svn: 195850
|
|
|
|
|
|
| |
a Decl so they all go through a common interface. No functional change intended.
llvm-svn: 195848
|
|
|
|
| |
llvm-svn: 195846
|
|
|
|
|
|
|
|
|
|
|
|
| |
attribute subjects. This makes some modifications to the way subjects are listed in Attr.td, and updates the attr emitter to handle the new constructs.
I have disabled some attribute subject lines on purpose in Attr.td;
this part is a WIP with the goal being to restore those subjects
incrementally. By commenting them out, it leaves the original behavior
the same as before for those attributes and so those are not
functionality changes.
llvm-svn: 195841
|
|
|
|
|
|
|
|
| |
look at the attribute spelling instead. The 'ownership_*' attributes should
probably be split into separate *Attr classes, but that's more than I wanted to
do here.
llvm-svn: 195805
|
|
|
|
|
|
| |
intended.
llvm-svn: 195770
|
|
|
|
|
|
|
|
| |
Attr.td. Also updated the related testcase.
Reviewed by Dmitri Gribenko.
llvm-svn: 195675
|
|
|
|
| |
llvm-svn: 195589
|
|
|
|
|
|
| |
removing the now-unused diagnostic. Updates a test case.
llvm-svn: 195581
|
|
|
|
|
|
| |
as behaviorally in MSVC). This adds a generic diagnostic that we use for uuid, and can use for some other attributes as well, and adds a testcase.
llvm-svn: 195580
|
|
|
|
|
|
| |
the semantic checking consistent with what the attribute specifies in Attr.td. Also adds a test case.
llvm-svn: 195579
|
|
|
|
|
|
|
|
| |
diagnostic.
Reviewed by Fariborz Jahanian
llvm-svn: 195578
|
|
|
|
|
|
| |
This refines some diagnostics and reduces some boilerplate checking logic.
llvm-svn: 195560
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
renamed).
This is still an experimental attribute, but I wanted it in tree
for review. It may still get yanked.
This attribute can only be applied to a class @interface, not
a class extension or category. It does not change the type
system rules for Objective-C, but rather the implementation checking
for Objective-C classes that explicitly conform to a protocol.
During protocol conformance checking, clang recursively searches
up the class hierarchy for the set of methods that compose
a protocol. This attribute will cause the compiler to not consider
the methods contributed by a super class, its categories, and those
from its ancestor classes. Thus this attribute is used to force
subclasses to redeclare (and hopefully re-implement) methods if
they decide to explicitly conform to a protocol where some of those
methods may be provided by a super class.
This attribute intentionally leaves out properties, which are associated
with state. This attribute only considers methods (at least right now)
that are non-property accessors. These represent methods that "do something"
as dictated by the protocol. This may be further refined, and this
should be considered a WIP until documentation gets written or this
gets removed.
llvm-svn: 195533
|
|
|
|
| |
llvm-svn: 195503
|
|
|
|
|
|
|
|
| |
and testing of objc_bridgmutable attribute per
Aaron Ballman's comments.
// rdar://15498044
llvm-svn: 195396
|
|
|
|
|
|
|
|
| |
whose semantic is currently identical to objc_bridge,
but their differences may manifest down the road with
further enhancements. // rdar://15498044
llvm-svn: 195376
|
|
|
|
|
|
|
|
|
|
|
| |
conformance for a class."
After implementing this patch, a few concerns about the language
feature itself emerged in my head that I had previously not considered.
I want to resolve those design concerns first before having
a half-designed language feature in the tree.
llvm-svn: 195328
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for a class.
The idea is to allow a class to stipulate that its methods (and those
of its parents) cannot be used for protocol conformance in a subclass.
A subclass is then explicitly required to re-implement those methods
of they are present in the class marked with this attribute.
Currently the attribute can only be applied to an @interface, and
not a category or class extension. This is by design. Unlike
protocol conformance, where a category can add explicit conformance
of a protocol to class, this anti-conformance really needs to be
observed uniformly by all clients of the class. That's because
the absence of the attribute implies more permissive checking of
protocol conformance.
This unfortunately required changing method lookup in ObjCInterfaceDecl
to take an optional protocol parameter. This should not slow down
method lookup in most cases, and is just used for protocol conformance.
llvm-svn: 195323
|
|
|
|
|
|
| |
diagnostic reusable.
llvm-svn: 195322
|
|
|
|
|
|
| |
considerable amount of duplicated code.
llvm-svn: 195302
|
|
|
|
|
|
| |
semantic analysis. Removes some magic numbers.
llvm-svn: 195287
|
|
|
|
|
|
| |
Switched the attribute to have the proper spelling, gave it a subject, updated the warning to be more accurate, and updated the test case as appropriate.
llvm-svn: 195277
|
|
|
|
|
|
| |
safety annotations, and replaced it with the more general attribute diagnostic. Updated the test case in the one instance where wording changed. No functional change intended.
llvm-svn: 195275
|
|
|
|
|
|
| |
a test case to ensure the diagnostic was firing properly.
llvm-svn: 195188
|
|
|
|
|
|
| |
itself.
llvm-svn: 195160
|
|
|
|
|
|
| |
'objc_bridge' attribute. // rdar://15454846.
llvm-svn: 195135
|
|
|
|
|
|
| |
per Doug/Jordan comments. // rdar://15454846.
llvm-svn: 195066
|
|
|
|
|
|
|
| |
on struct/union/class instead of typedef of
such types. // rdar://15454846
llvm-svn: 195061
|
|
|
|
|
|
|
| |
Improve on wording on illegal objc_bridge argumment.
// rdar://15454846
llvm-svn: 194881
|