Fariborz Jahanian
9ad94aa280
Objective-C. revert patch for rdar://17554063.
...
llvm-svn: 220812
2014-10-28 18:28:16 +00:00
Fariborz Jahanian
214567ccfa
[Objective-C]. revert r220740,r220727
...
llvm-svn: 220802
2014-10-28 17:26:21 +00:00
Fariborz Jahanian
992bdf1b45
Objective-C ARC [qoi]. Issue diagnostic if __bridge casting
...
to C type a collection literal. rdar://18768214
llvm-svn: 220727
2014-10-27 22:33:06 +00:00
Kaelyn Takata
89c881b548
Pass around CorrectionCandidateCallbacks as unique_ptrs so
...
TypoCorrectionConsumer can keep the callback around as long as needed.
llvm-svn: 220693
2014-10-27 18:07:29 +00:00
Fariborz Jahanian
fba4fe6717
Objective-C. Under a special flag, -Wcstring-format-directive,
...
off by default, issue a warning if %s directive is used
in formart argument of a function/method declared as
__attribute__((format(CF/NSString, ...)))
To complete rdar://18182443
llvm-svn: 217619
2014-09-11 19:13:23 +00:00
Fariborz Jahanian
6485fe4b07
Objective-C. Under a special flag, -Wcstring-format-directive,
...
off by default, issue a warning if %s directive is used in
certain CF/NS formatting APIs, to assist user in deprecating
use of such %s in these APIs. rdar://18182443
llvm-svn: 217467
2014-09-09 23:10:54 +00:00
Craig Topper
8c2a2a0f82
Use llvm::makeArrayRef instead of explicitly calling ArrayRef constructor and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>.
...
llvm-svn: 216824
2014-08-30 16:55:39 +00:00
Fariborz Jahanian
4229228389
Objective-C. Allow [super initialize] in an +initialize
...
implementation but not anywhere else.
rdar://16628028
llvm-svn: 216408
2014-08-25 21:27:38 +00:00
Fariborz Jahanian
4bf437ecd8
Objective-C. Warn when @encode'ing provides an incomplete
...
type encoding because in certain cases, such as for vector
types, because we still haven't designed encoding for them.
rdar://9255564
llvm-svn: 216301
2014-08-22 23:17:52 +00:00
Fariborz Jahanian
e8b45505bc
Objective-C. Update my previous patch to not warn if
...
+initialize is called on 'super' in its implementation.
rdar://16628028
llvm-svn: 216282
2014-08-22 19:52:49 +00:00
Fariborz Jahanian
78e9debf68
Objective-C. Warn if user has made explicit call
...
to +initilize as this results in an extra call
to this method. rdar://16628028
llvm-svn: 216271
2014-08-22 16:57:26 +00:00
Fariborz Jahanian
19c2e2fab2
Objective-C [qoi]. Provide fix-it hint when sending
...
class method to an object receiver. rdar://16263395
llvm-svn: 216038
2014-08-19 23:39:17 +00:00
Fariborz Jahanian
4eda2c0086
Objective-C. Do not warn if user is using property-dox syntax to name a
...
user provided setter name (as declared in @property attribute declaration).
rdar://18022762
llvm-svn: 215736
2014-08-15 17:39:00 +00:00
Fariborz Jahanian
d288fad374
Objective-C. Handle case of multiple class methods
...
found in global pool as well. rdar://16808765
llvm-svn: 215603
2014-08-13 23:38:04 +00:00
Fariborz Jahanian
0ded42451d
Objective-C. Minor refactoring of my last patch.
...
// rdar://16808765
llvm-svn: 215581
2014-08-13 21:24:14 +00:00
Fariborz Jahanian
30ae8d4413
Objective-C. This patch is to resolve the method used in method
...
expression to the best method found in global method pools.
This is wip. // rdar://16808765
llvm-svn: 215577
2014-08-13 21:07:35 +00:00
Fariborz Jahanian
5ab8750c5c
Objective-C [qoi]. Patch to not do Fix-It for fixing
...
a messaging expression except in the simple case
of a unary selector. We cannot reliably provide such a fixit due
to numerous reasons where a matching selector could not be found.
rdar://15756038
llvm-svn: 215480
2014-08-12 22:16:41 +00:00
Fariborz Jahanian
0b1d28866c
Objective-C [qoi]. Issue warning and fixit if property-dot syntax
...
use mis-cased property name (which is currently accepted silently
due to the way property setters are named). rdar://17911746
llvm-svn: 215250
2014-08-08 22:33:24 +00:00
Fariborz Jahanian
bf09db44f7
Objective-C. Minor refactoring of my previous patch.
...
rdar://17554063
llvm-svn: 215235
2014-08-08 18:29:52 +00:00
Fariborz Jahanian
495bc3f5f6
Objective-C ARC. Use of non-retain/autorelease API
...
for building Objective-C array literals in ARC
mode. rdar://17554063
llvm-svn: 215232
2014-08-08 17:31:14 +00:00
Fariborz Jahanian
d45e7cec42
Objective-C arc. Switch the Objective-C dictionary literal in ARC mode
...
to use non-retain/autorelease API variants of ObjC objects. wip.
rdar://17554063
llvm-svn: 215146
2014-08-07 20:57:35 +00:00
Fariborz Jahanian
2a25dba153
Objective-C ARC. More code for Objective-C's
...
new APIs for literals. nfc. wip. rdar://17554063
llvm-svn: 215043
2014-08-06 23:40:31 +00:00
Fariborz Jahanian
413297c53d
Objective-C ARC. First patch toward generating new APIs
...
for Objective-C's array and dictionary literals.
rdar://17554063. This is wip.
llvm-svn: 214983
2014-08-06 18:13:46 +00:00
Aaron Ballman
41b10ac3b7
Replacing some more complex logic with a helper function call to ObjCMethod::getReturnTypeSourceRange. No functional changes intended.
...
llvm-svn: 214511
2014-08-01 13:20:09 +00:00
Fariborz Jahanian
a1db7df243
Obective-C. Patch to fix the incorrect ObjcMessageExpr argument source ranges,
...
when arguments are structures or classes. PR16392.
patch by Karlis Senko
llvm-svn: 214409
2014-07-31 17:39:50 +00:00
Fariborz Jahanian
a57d91c2ae
Objective-C. Warn if protocol used in an @protocol
...
expression is a forward declaration as this results
in undefined behavior. rdar://17768630
llvm-svn: 213968
2014-07-25 19:45:01 +00:00
Alp Toker
03376dc2c5
Switch over a few uses of param_begin() to parameters()
...
llvm-svn: 212442
2014-07-07 09:02:20 +00:00
Fariborz Jahanian
53f867ac45
Objective-C ARC. Provide diagnostic and fix-it
...
when casting a retainable object to a objc_bridge_related
CF type with the suggestion of applying the method
specified in the bridging attribute to the object.
// rdar://15932435
llvm-svn: 211807
2014-06-26 21:22:16 +00:00
Fariborz Jahanian
dacffc0d8d
Objective-C. When we use @selector(save:), etc. there may be more
...
than one method with mismatched type of same selector name.
clang issues a warning to point this out since it may cause
undefined behavior. There are cases though that some APIs
don't care about user methods and such warnings are perceived as
noise. This patch allows users to add paren delimiters around
selector name to turn off such warnings. So, @selector((save:)) will
turn off the warning. It also provides 'fixit' so user knows
what to do. // rdar://16458579
llvm-svn: 211611
2014-06-24 17:02:19 +00:00
Fariborz Jahanian
c03ef578eb
Objective-C ARC. Allow conversion of (void*) pointers to
...
retainable ObjC pointers without requiring a bridge-cast
in the context of pointer comparison as this is in effect
a +0 context. // rdar://16627903
llvm-svn: 211243
2014-06-18 23:52:49 +00:00
Fariborz Jahanian
1ad83a35b1
Objective-C. Revert my patch in r211234.
...
llvm-svn: 211237
2014-06-18 23:22:38 +00:00
Fariborz Jahanian
62aeb8b653
Objective-C ARC. Allow conversion of (void*) pointers to
...
retainable ObjC pointers without requiring a bridge-cast
by recognizing this as a +0 context. // rdar://16627903
llvm-svn: 211234
2014-06-18 22:50:40 +00:00
Fariborz Jahanian
5d64abba0a
Objective-C. Check for integer overflow in Objective-C's
...
boxed expression. // rdar://16417427
llvm-svn: 211215
2014-06-18 20:49:02 +00:00
Fariborz Jahanian
9277ff426d
Objective-C ARC. Do not warn about properties with both
...
IBOutlet and weak attributes when accessed being
unpredictably set to nil because usage of such properties
are always single threaded and its ivar cannot be set
to nil asynchronously. // rdar://15885642
llvm-svn: 211132
2014-06-17 23:35:13 +00:00
Alp Toker
d4a3f0e894
Hide the concept of diagnostic levels from lex, parse and sema
...
The compilation pipeline doesn't actually need to know about the high-level
concept of diagnostic mappings, and hiding the final computed level presents
several simplifications and other potential benefits.
The only exceptions are opportunistic checks to see whether expensive code
paths can be avoided for diagnostics that are guaranteed to be ignored at a
certain SourceLocation.
This commit formalizes that invariant by introducing and using
DiagnosticsEngine::isIgnored() in place of individual level checks throughout
lex, parse and sema.
llvm-svn: 211005
2014-06-15 23:30:39 +00:00
Fariborz Jahanian
9af6a78f36
Objective-C. More tests for both bridging attributes and
...
a fix to make it work when CFStructs have no definition.
// rdar://17238954.
llvm-svn: 210690
2014-06-11 19:10:46 +00:00
Fariborz Jahanian
5cbbb1be92
Objective-C. Patch to handle bridge attribute warnings
...
correctly when both NSAttributedString and
NSMutableAttributedString are specified on the same
CFStruct via different typedefs. // rdar://17238954
llvm-svn: 210660
2014-06-11 16:52:44 +00:00
Nikola Smiljanic
03ff2596cb
Refactoring. Remove Owned method from Sema.
...
llvm-svn: 209812
2014-05-29 14:05:12 +00:00
Nikola Smiljanic
01a7598561
Refactoring. Remove release and take methods from ActionResult. Rename takeAs to getAs.
...
llvm-svn: 209800
2014-05-29 10:55:11 +00:00
Craig Topper
c3ec149bb2
[C++11] Use 'nullptr'. Sema edition.
...
llvm-svn: 209613
2014-05-26 06:22:03 +00:00
Fariborz Jahanian
c70a54366e
Objective-C ARC. Add support for toll-free bridge
...
type ,and bridge attribute, checking with static_cast.
// rdar://16756639
llvm-svn: 208474
2014-05-10 17:40:11 +00:00
Fariborz Jahanian
65a78b5d9b
Objective-C. Reduce false positive warnings with -Wselector by issuing warning
...
only when named selector is declared in TU and it is not declared in a system
header. rdar://16600230
llvm-svn: 208443
2014-05-09 19:51:39 +00:00
Fariborz Jahanian
f1a22f487e
Objective-C. Improve diagnosis of bridging types.
...
// rdar://16737117
llvm-svn: 207542
2014-04-29 16:12:56 +00:00
John Thompson
2255f2ce90
Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules.
...
llvm-svn: 206977
2014-04-23 12:57:01 +00:00
Fariborz Jahanian
953d18a988
Objective-C ARC. Under ARC, addition of 'bridge' attribute
...
on CF type is not sufficient and bridge casting is
still required for proper ownership semantics.
// rdar://16650445
llvm-svn: 206910
2014-04-22 17:42:01 +00:00
Fariborz Jahanian
29cdbc6319
Objective-C. Patch to allow use of dot syntax on class
...
objects to fund root class's instance methods.
// rdar://16650575
llvm-svn: 206781
2014-04-21 20:22:17 +00:00
Fariborz Jahanian
1c43329e29
Objective-C. Make multiple selector warning
...
an opt-in option under -Wselector-type-mismatch.
// rdar://16445728
llvm-svn: 204965
2014-03-27 21:59:01 +00:00
Fariborz Jahanian
ba419ce21d
Objective-C. Consider blocks for designated initializer
...
warnings (warning or lack there of) as well since
blocks are another pattern for envoking other
designated initializers. // rdar://16323233
llvm-svn: 204081
2014-03-17 21:41:40 +00:00
Aaron Ballman
83731469a1
[C++11] Replacing ObjCObjectPointerType iterators qual_begin() and qual_end() with iterator_range quals(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204048
2014-03-17 16:14:00 +00:00
Aaron Ballman
1683f7baf6
[C++11] Replacing ObjCObjectType iterators qual_begin() and qual_end() with iterator_range quals(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204047
2014-03-17 15:55:30 +00:00