aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC
AgeCommit message (Collapse)Author
2012-02-21Don't crash on attempts to synthesize an invalid property.John McCall
rdar://problem/10904479 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151089 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21When calling a non variadic format function(vprintf, vscanf, NSLogv, …), ↵Jean-Daniel Dupas
warn if the format string argument is a parameter that is not itself declared as a format string with compatible format. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151080 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18Change wording of warning about using __bridge casts in non-ARC.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150868 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-10Revert r145999. This turned out to be a bad idea. Unfortunately, 'id' is ↵Ted Kremenek
used so profusely in many APIs and large codebases that this made the deprecated warning trigger happy to the point of not being useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150223 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-09objc: If a method is not implemented in the category implementation butFariborz Jahanian
has been declared in its primary class, superclass, or in one of their protocols, no need to issue unimplemented method. // rdar://10823023 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150206 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-08Only complain about __strong __strong id, not __strong SomeStrongTypedefJohn McCall
or __strong __typeof__(some.strong.thing). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150029 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-07Make parsing of objc @implementations more robust.Argyrios Kyrtzidis
Parsing of @implementations was based on modifying global state from the parser; the logic for late parsing of methods was spread in multiple places making it difficult to have a robust error recovery. -it was difficult to ensure that we don't neglect parsing the lexed methods. -it was difficult to setup the original objc container context for parsing the lexed methods after completing ParseObjCAtImplementationDeclaration and returning to top level context. Enhance parsing of @implementations by centralizing it in Parser::ParseObjCAtImplementationDeclaration(). ParseObjCAtImplementationDeclaration now returns only after an @implementation is fully parsed; all the data and logic for late parsing of methods is now in one place. This allows us to provide code-completion for late parsed methods with mis-matched braces. rdar://10775381 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149987 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-07Fix a couple of nasty bugs involving negative enum constants. ↵Eli Friedman
<rdar://problem/10760113>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149965 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-06Tweak format string checking to work with %@ and ObjC toll-free bridging. ↵Ted Kremenek
<rdar://problem/10814120> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149907 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-06objc: fixes a problem in block type comparison involvingFariborz Jahanian
enums with underlying type explicitly specified (feature which is on by default in objective-c). // rdar://10798770 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149888 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Fixed some testsuite problems introduced by mySean Callanan
last commit. Sorry for the outage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149744 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Revert r149721. chapuni tells me akyrtzi already fixed the testNico Weber
by adding a triple, and the typedef makes things worse on windows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149740 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-04Clang has existing support for debuggers thatSean Callanan
want to provide "po"-like functionality which treats the result of an expression implicitly as "id" (if it is not otherwise known) and prints it as an Objective-C object. This has in the past been gated by the "DebuggerSupport" language option, but that is too general. Debuggers also provide other commands like "print" that do not make any assumptions about whether the object is an Objective-C object. This patch makes the assumption conditional on a new language option: DebuggerCastResultToId. I have also made corresponding modifications to the testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149735 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Try to get test passing on windows.Nico Weber
Idea by Jean-Daniel Dupas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149721 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Add a triple to test/SemaObjC/format-strings-objc.m to make it pass in ↵Argyrios Kyrtzidis
windows hosts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149696 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Further downgrade -Warc-bridge-casts-disallowed-in-nonarc to a warning (not ↵Ted Kremenek
mapped to an error). We can consider mapping it back to an error later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149670 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Make error about using bridge casts in non-ARC mode a warning that is ↵Ted Kremenek
default mapped to an error. This is to ease the transition of large apps moving from non-ARC to ARC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149659 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03objc: Issue diagnostic when receiver type is a forward class declaration andFariborz Jahanian
it is treated as of 'id' type resulting in multiple method lookup. // rdar://10686120 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-02objective-c: When redeclaraing in continuation class a 'readonly'Fariborz Jahanian
property to 'readwrite', also allow redeclaration of property type to a narrowring object type. // rdar://10790488 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149614 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-02objc: don't crash if primary class is missing and continuation classFariborz Jahanian
is declaring ivars. // rdar://10752081 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149573 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-02objc2: add __has_feature(objc_default_synthesize_properties).Fariborz Jahanian
// rdar://10770497 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149565 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-01Look for declaration of CFBridgingRetain/CFBridgingRetain beforeFariborz Jahanian
changing the diagnostic. Also use correct spelling for both. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149554 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-31objc-arc: In various diagnostics mention Fariborz Jahanian
CFBridgingRetain/CFBridgingRelease calls instead of __bridge_retained/__bridge_transfer casts as preferred way of moving cf objects to arc land. // rdar://10207950 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149449 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-31Let %S, %ls, %C match 16bit types in NSStrings.Nico Weber
As discussed at http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120130/052200.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149325 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-30Disable "non literal format string" for NSString that result from a macro ↵Jean-Daniel Dupas
expansion. This is to prevent diagnostic when using NSLocalizedString or CFCopyLocalizedString macros which are usually used in place of NS and CF strings literals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149268 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-30Update on format attribute handling.Jean-Daniel Dupas
- Remove the printf0 special handling as we treat it as printf anyway. - Perform basic checks (non-literal, empty) for all formats and not only printf/scanf. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149236 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-27Remove the "C" in "implicitly declaring C library function" diagnosticJean-Daniel Dupas
because all functions are not C functions (i.e. NSLog). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149150 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26Don't suppress access-control or invalid-type diagnostics from aJohn McCall
declarator just because we were able to build an invalid decl for it. The invalid-type diagnostics, in particular, are still useful to know, and may indicate something about why the decl is invalid. Also, recover from an illegal pointer/reference-to-unqualified-retainable type using __strong instead of __autoreleasing; in general, a random object is much more likely to be __strong, so this avoids unnecessary cascading errors in the most common case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149074 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26objc: 'id' and block pointer compare in mergeTypes isFariborz Jahanian
made symmetrical. // rdar://10734265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-26objc: allow block pointer matching 'id' type whenFariborz Jahanian
they show up as argument types of two block pointers. // rdar://10734265 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149007 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Add support for const pointer to literal-objc string as format attribute.Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148948 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix test on cygwin (where va_list expands to a different type)Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148892 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Fix NSLog format string checking for %@.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148885 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Replace a hack to handle NSLog/NSLogv in sema by declaring them as Library ↵Jean-Daniel Dupas
Builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148873 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24Remove trailing slash in front of header name of ObjC builtins.Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24objc: Issue a generic diagnostic assigning to Fariborz Jahanian
an objc object in any abi mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148847 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-24objective-c: Ignore with warning forward class declaration whose nameFariborz Jahanian
matches a typedef declaring an object type. // rdar://10733000 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148760 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-20Tighten format string diagnostic and make it a bit clearer (and a bit closer ↵Ted Kremenek
to GCC's). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148579 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-18objc: deprecate direct usage of 'isa' of objc objectsFariborz Jahanian
in favor of usage of api's intended for. // rdar://8290002 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148404 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-17objc-arc: when 'assign' attribute is unspecified,Fariborz Jahanian
rely on property's type for its life-time to avoid bogus warning with -Warc-unsafe-retained-assign. // rdar://10694932 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-17Disable -Wduplicate-method-match by default. <rdar://problem/10663536>Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148343 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-17Fix a couples of issues in format strings checking.Jean-Daniel Dupas
PR 10274: format function attribute with the NSString archetype yields no compiler warnings PR 10275: format function attribute isn't checked in Objective-C methods git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148324 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-17objc: fixes a bug where struct used inside anFariborz Jahanian
objc class was not being exported to parent decl context resulting in bogus mismatch warning later on. // rdar://10655530 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148320 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-14objc: disallow __block attribute on method params.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148197 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-13objc parsing. Fixes a crash when parsing array initializationFariborz Jahanian
inside a class implementation with parse errors. // rdar://10633434 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148074 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-12objc: do not warn when converting to a const id qualfied by itsFariborz Jahanian
list of protools. // rdar://10669694 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148051 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-12objective-c: fixes a regression in looking up namesFariborz Jahanian
in class extensions and categories by recent refactoring of objc class ASTs. // rdar://1066654 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147982 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-11objc-arc: evaluate 'readonly' property with no knownFariborz Jahanian
life-time to that of its backing 'ivar's lifetime. // rdar://10558871 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147956 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-11Do placeholder conversions on array bounds in both declarators andJohn McCall
new-expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147900 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10objc-arc: fixes a crash when trying to find out retaining cycleFariborz Jahanian
ownership of property sent to 'super'. // rdar://10640891 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147868 91177308-0d34-0410-b5e6-96231b3b80d8