| // RUN: %clang_cc1 -Wmethod-signatures -fsyntax-only -verify -Wno-objc-root-class %s |
| |
| typedef signed char BOOL; |
| typedef unsigned int NSUInteger; |
| typedef struct _NSZone NSZone; |
| @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; |
| @protocol NSObject - (BOOL)isEqual:(id)object; |
| @end @protocol NSCopying - (id)copyWithZone:(NSZone *)zone; |
| @end @protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone; |
| @end @protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; |
| @end @interface NSObject <NSObject> { |
| } |
| @end extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone); |
| @interface NSValue : NSObject <NSCopying, NSCoding> - (void)getValue:(void *)value; |
| @end @class NSString; |
| typedef struct _NSRange { |
| } |
| NSRange; |
| @interface NSValue (NSValueRangeExtensions) + (NSValue *)valueWithRange:(NSRange)range; |
| @end @interface NSAttributedString : NSObject <NSCopying, NSMutableCopying, NSCoding> - (NSString *)string; |
| @end @interface NSMutableAttributedString : NSAttributedString - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)str; |
| @end @class NSArray, NSDictionary, NSString, NSError; |
| @interface NSScanner : NSObject <NSCopying> - (NSString *)string; |
| @end typedef struct { |
| } |
| CSSM_FIELDGROUP, *CSSM_FIELDGROUP_PTR; |
| @protocol XDUMLClassifier; |
| @protocol XDUMLClassInterfaceCommons <XDUMLClassifier> |
| @end @protocol XDUMLImplementation; |
| @protocol XDUMLElement <NSObject> - (NSArray *) ownedElements; |
| @end @protocol XDUMLDataType; |
| @protocol XDUMLNamedElement <XDUMLElement> - (NSString *) name; |
| @end enum _XDSourceLanguage { |
| XDSourceUnknown=0, XDSourceJava, XDSourceC, XDSourceCPP, XDSourceObjectiveC }; |
| typedef NSUInteger XDSourceLanguage; |
| @protocol XDSCClassifier <XDUMLClassInterfaceCommons> - (XDSourceLanguage)language; |
| @end @class XDSCDocController; |
| @interface XDSCDisplaySpecification : NSObject <NSCoding>{ |
| } |
| @end @class XDSCOperation; |
| @interface XDSCClassFormatter : NSObject { |
| } |
| + (NSUInteger) compartmentsForClassifier: (id <XDUMLClassifier>) classifier withSpecification: (XDSCDisplaySpecification *) displaySpec; // expected-note {{previous definition is here}} |
| @end |
| @class NSString; |
| @implementation XDSCClassFormatter |
| |
| + appendVisibility: (id <XDUMLNamedElement>) element withSpecification: (XDSCDisplaySpecification *) displaySpec to: (NSMutableAttributedString *) attributedString |
| { |
| return 0; |
| } |
| + (NSUInteger) compartmentsForClassifier: (id <XDSCClassifier>) classifier withSpecification: (XDSCDisplaySpecification *) displaySpec { // expected-warning {{conflicting parameter types in implementation of 'compartmentsForClassifier:withSpecification:'}} |
| return 0; |
| } |
| @end |
| |
| // rdar: // 8006060 |
| @interface Bar |
| - (void)foo:(id)format, ...; // expected-note {{previous declaration is here}} |
| - (void)foo1:(id)format; // expected-note {{previous declaration is here}} |
| @end |
| @implementation Bar |
| - (void)foo:(id)format {}; // expected-warning {{conflicting variadic declaration of method and its implementation}} |
| - (void)foo1:(id)format, ... {}; // expected-warning {{conflicting variadic declaration of method and its implementation}} |
| @end |
| |