Eli Friedman
4ef077a072
Fix regression from r190427.
...
<rdar://problem/14970968>
llvm-svn: 190635
2013-09-12 22:36:24 +00:00
Eli Friedman
5a722e92af
Add self-comparison warnings for fields.
...
This expands very slightly what -Wtautological-compare considers to be
tautological to include implicit accesses to C++ fields and ObjC ivars.
I don't want to turn this into a full expression-identity check, but
these additions seem pretty well-contained, and maintain the theme
of checking for "x == x".
<rdar://problem/14431127>
llvm-svn: 190118
2013-09-06 03:13:09 +00:00
Aaron Ballman
5e13985df8
Improving objc_ownership attribute test coverage.
...
llvm-svn: 189731
2013-09-01 19:11:23 +00:00
Aaron Ballman
00e99966c4
Consolidating the notion of a GNU attribute parameter with the attribute argument list.
...
llvm-svn: 189711
2013-08-31 01:11:41 +00:00
Fariborz Jahanian
8181caa44e
ObjectiveC [Sema]. This patch makes sure that all inherited
...
properties (direct or indirect) setter/getter (or declared
methods as well) are seen by the method implementation type
matching logic before declaration of method in super class
is seen. This fixes the warning coming out of that method mismatch.
// rdar://14650159
llvm-svn: 188438
2013-08-14 23:58:55 +00:00
Fariborz Jahanian
fde99b2e31
Refine diagnostics in my last patch.
...
// rdar://14303083
llvm-svn: 188335
2013-08-14 00:07:10 +00:00
Fariborz Jahanian
a802c3526b
ObjectiveC [QoI] issue warning if an element of an nsarray
...
expresison is a concatenated nsstring element.
// rdar://14303083
llvm-svn: 188332
2013-08-13 23:44:55 +00:00
Richard Smith
d7293d7fcb
Implement C++'s restrictions on the type of an expression passed to a vararg
...
function: it can't be 'void' and it can't be an initializer list. We give a
hard error for these rather than treating them as undefined behavior (we can
and probably should do the same for non-POD types in C++11, but as of this
change we don't).
Slightly rework the checking of variadic arguments in a function with a format
attribute to ensure that certain kinds of format string problem (non-literal
string, too many/too few arguments, ...) don't suppress this error.
llvm-svn: 187735
2013-08-05 18:49:43 +00:00
Fariborz Jahanian
3a25d0d593
ObjectiveC ARC: finishing off issuing error when
...
retainable pointer is passed to an audited CF function
expecting CF type. // rdar://14569171
llvm-svn: 187543
2013-07-31 23:19:34 +00:00
Aaron Ballman
3bf758cd65
err_attribute_not_string has been subsumed by err_attribute_argument_type.
...
llvm-svn: 187400
2013-07-30 01:31:03 +00:00
Aaron Ballman
b7243381c2
Added the attribute name to the err_attribute_wrong_number_arguments diagnostic for clarity; updated almost all of the affected test cases.
...
Thanks to Fariborz Jahanian for the suggestion!
llvm-svn: 186980
2013-07-23 19:30:11 +00:00
Aaron Ballman
086e428b5b
Going back to using getName for consistency.
...
llvm-svn: 186966
2013-07-23 17:35:26 +00:00
Aaron Ballman
b06c690c5d
Fixing the build bots from the previous commit.
...
llvm-svn: 186947
2013-07-23 15:21:34 +00:00
Aaron Ballman
283ef4234c
Replacing some manual diagnostic checks with an existing helper method. Adding missing test cases for the diagnostics.
...
llvm-svn: 186944
2013-07-23 15:16:00 +00:00
Aaron Ballman
7ced167a09
Correcting the NSObject and Overloadable attribute diagnostics so that the count reported matches reality.
...
llvm-svn: 186936
2013-07-23 12:13:14 +00:00
Eli Friedman
75807f239e
Make IgnoreParens() look through ChooseExprs.
...
This is the same way GenericSelectionExpr works, and it's generally a
more consistent approach.
A large part of this patch is devoted to caching the value of the condition
of a ChooseExpr; it's needed to avoid threading an ASTContext into
IgnoreParens().
Fixes <rdar://problem/14438917>.
llvm-svn: 186738
2013-07-20 00:40:58 +00:00
Jean-Daniel Dupas
06028a5454
Fix another place where clang check objc selector name instead of checking the selector family
...
Summary: In ARC mode, clang emits a warning if the result of an 'init' method is unused but miss cases where the method does not follows the Cocoa naming convention but is properly declared as an init family method.
CC: cfe-commits, eli.friedman
Differential Revision: http://llvm-reviews.chandlerc.com/D1163
llvm-svn: 186718
2013-07-19 20:25:56 +00:00
Aaron Ballman
f90ccb082b
Replacing a morally duplicate diagnostic by adding it to an existing diagnostic's select list. Updates the tests for the more consistent diagnostic.
...
llvm-svn: 186584
2013-07-18 14:56:42 +00:00
Jean-Daniel Dupas
3965574929
Improve idiomatic-parentheses by checking method family instead of relying on the selector name.
...
llvm-svn: 186524
2013-07-17 18:17:14 +00:00
Fariborz Jahanian
14e9541916
Restore warning to its original text when
...
certain familiy of methods have the wrong type.
// rdar://14408244
llvm-svn: 186111
2013-07-11 19:13:34 +00:00
Fariborz Jahanian
b248ca5548
ObjectiveC arc[qoi]: When due to change of certain methods'
...
result type, a diagnostic being issued, issue a 'note'
mentioning reason behind the unexpected warning.
// rdar://14121570.
llvm-svn: 186105
2013-07-11 16:48:06 +00:00
Fariborz Jahanian
db4fc28145
Objective-C: merge objc_requires_super attribute of
...
method declaration into its implementation to
prevent a bogus warning about mismatched attributes.
then make sure the warning about missing call to super comes out
of the method implementation. // rdar://14251387
llvm-svn: 185974
2013-07-09 22:02:20 +00:00
Fariborz Jahanian
ae26bb67f8
Objective-C: Warn when fast enumeration variable isn't used.
...
// rdar://14182680.
llvm-svn: 185762
2013-07-06 18:04:13 +00:00
Rafael Espindola
925213b0fa
Add 'not' to commands that are expected to fail.
...
This is at least good documentation, but also opens the possibility of
using pipefail.
llvm-svn: 185652
2013-07-04 16:16:58 +00:00
Fariborz Jahanian
e23f26bf94
ObjectiveC: diagnose duplicate declaration of
...
private ivars in class extensions and class
@implementation. // rdar://14278560
llvm-svn: 185025
2013-06-26 22:10:27 +00:00
Fariborz Jahanian
f030d16c92
Objective-C: Warn when IBOutletCollection property
...
is declared to have 'assign' attribute.
// rdar://14212998
llvm-svn: 184863
2013-06-25 17:34:50 +00:00
Ted Kremenek
009d61dd16
Tweak -Wdeprecated-objc-pointer-introspection to have a subgroup for results of using -performSelectorXXX.
...
-performSelector: and friends return a value that is boxed as an Objective-C
pointer. Sometimes it is an Objective-C pointer, sometimes it isn't.
Some clients may wish to silence this warning based on calling
this method.
Fixes <rdar://problem/14147304>
llvm-svn: 184789
2013-06-24 21:35:39 +00:00
Reid Kleckner
5a11580205
[Sema] Call CheckParmForFunctionDef on ObjC method parameters
...
CheckParmForFunctionDef performs standard checks for type completeness
and other things like a destructor check for the MSVC++ ABI.
llvm-svn: 184740
2013-06-24 14:38:26 +00:00
Eli Friedman
81e4e4e5cc
Add test.
...
llvm-svn: 184519
2013-06-21 02:09:51 +00:00
Enea Zaffanella
a86d88c7cd
Improved source code fidelity for gcc mode attribute.
...
llvm-svn: 184417
2013-06-20 12:46:19 +00:00
Fariborz Jahanian
0649923b57
Objective-C: Fixes a typo correction bug where a
...
selector would be correted to identical selector name
in certain corner cases. // rdar://7853549
llvm-svn: 184208
2013-06-18 17:10:58 +00:00
Fariborz Jahanian
9917fcad11
Fix buildbot failure.
...
llvm-svn: 184199
2013-06-18 15:54:30 +00:00
Fariborz Jahanian
4cc5552b9b
Objective-C [qoi]: privide typo correction for selectors
...
in addition of receiver having static type, but also when
receiver has dynamic type (of 'id' variety) as well as when
receiver is of 'Class' type vareity. // rdar://7853549
llvm-svn: 184195
2013-06-18 15:31:36 +00:00
Fariborz Jahanian
aaddc09b39
unbreak buildbot for now.
...
llvm-svn: 184093
2013-06-17 17:41:13 +00:00
Fariborz Jahanian
7548167845
Objective-C [qoi]: Provide fixit hint when message with typo
...
is sent to a receiver object. This is wip. // rdar://7853549
llvm-svn: 184086
2013-06-17 17:10:54 +00:00
Eli Friedman
31a5bcc24e
Unify return type checking for functions and ObjC methods. Move all the
...
random checks for ObjC object return types to SemaType.cpp.
Fixes issue with ObjC method type checking reported on cfe-dev.
llvm-svn: 184006
2013-06-14 21:14:10 +00:00
Fariborz Jahanian
bbc126e7df
Objective-C: Another case of issuing warning about misusing
...
property auto-synthesis before knowingit it is to be
auto-synthesized. // rdar://14094682
llvm-svn: 183556
2013-06-07 20:26:51 +00:00
Fariborz Jahanian
4614524d4a
Objective-C: Removes a bogus warning about auto-synthesis
...
of properties. Fixes // rdar://14085456
llvm-svn: 183542
2013-06-07 18:32:55 +00:00
Fariborz Jahanian
deac9ac546
Objective-C: Fixes an ivar lookup bug where
...
'ivar' was used inside a record/union used
as argument to __typeof. // rdar14037151 pr5984
llvm-svn: 183048
2013-05-31 21:51:12 +00:00
Fariborz Jahanian
42f89384f5
Objective-C: Implements gcc's -Wselector option
...
which diagnoses type mismatches of identical
selectors declared in classes throughout.
// rdar://14007194
llvm-svn: 182964
2013-05-30 21:48:58 +00:00
Fariborz Jahanian
7325c27468
Objective-C [qoi]: Improve on diagnostic when a method used
...
in an @selector expression has no implementation.
// rdar://14002507
llvm-svn: 182812
2013-05-28 23:49:32 +00:00
Fariborz Jahanian
6f829e34b3
Objective-C arc: don't count use of __weak
...
variables when they are used in such unevaluated
contexts as __typeof, etc. // rdar://13942025
llvm-svn: 182423
2013-05-21 21:20:26 +00:00
Fariborz Jahanian
0ebf87959f
Objective-C [qoi]: When an class conforms to multiple
...
protocols that declare the same property of incompatible
types, issue a warning when class implementation synthesizes
the property. // rdar://13075400
llvm-svn: 182316
2013-05-20 21:20:24 +00:00
Fariborz Jahanian
39d1c42f30
Objective-C arc: Diagnose when user attempts to
...
synthesize a property getter method that overrides
a method definition named 'retain' and the like.
Fixes // rdar://13885083
llvm-svn: 182039
2013-05-16 19:08:44 +00:00
Fariborz Jahanian
0b11ef2ef0
Objective-C: More cases of -Wsign-conversion not
...
working on new Objective-C array subscripting
syntax. // rdar://13855682
llvm-svn: 181940
2013-05-15 22:25:03 +00:00
Fariborz Jahanian
2cb4a957c6
Objective-C: patch to issue the conversion
...
warning when property-dot syntax is used
with -Wsign-conversion. // rdar://13855394
llvm-svn: 181914
2013-05-15 19:03:04 +00:00
Fariborz Jahanian
478536b1c1
improve of note message and minor refactoring of my last
...
patch (r181847).
llvm-svn: 181896
2013-05-15 15:27:35 +00:00
Fariborz Jahanian
773df4a11f
Objective-C [diagnostics] [QOI], when method is not
...
found for a receiver, note where receiver class
is declaraed (this is most common when receiver is a forward
class). // rdar://3258331
llvm-svn: 181847
2013-05-14 23:24:17 +00:00
John McCall
1b4259b53b
In block enum-return inference, don't die on loads of enum lvalues.
...
More of rdar://13200889.
llvm-svn: 181390
2013-05-08 03:34:22 +00:00
Argyrios Kyrtzidis
56c56d218d
Revert r177218.
...
Per discussion in cfe-commits, asserting may be a better way than introducing a special test flag.
llvm-svn: 181073
2013-05-03 23:20:27 +00:00