// 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 { } @end extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone); @interface NSValue : NSObject - (void)getValue:(void *)value; @end @class NSString; typedef struct _NSRange { } NSRange; @interface NSValue (NSValueRangeExtensions) + (NSValue *)valueWithRange:(NSRange)range; @end @interface NSAttributedString : NSObject - (NSString *)string; @end @interface NSMutableAttributedString : NSAttributedString - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)str; @end @class NSArray, NSDictionary, NSString, NSError; @interface NSScanner : NSObject - (NSString *)string; @end typedef struct { } CSSM_FIELDGROUP, *CSSM_FIELDGROUP_PTR; @protocol XDUMLClassifier; @protocol XDUMLClassInterfaceCommons @end @protocol XDUMLImplementation; @protocol XDUMLElement - (NSArray *) ownedElements; @end @protocol XDUMLDataType; @protocol XDUMLNamedElement - (NSString *) name; @end enum _XDSourceLanguage { XDSourceUnknown=0, XDSourceJava, XDSourceC, XDSourceCPP, XDSourceObjectiveC }; typedef NSUInteger XDSourceLanguage; @protocol XDSCClassifier - (XDSourceLanguage)language; @end @class XDSCDocController; @interface XDSCDisplaySpecification : NSObject { } @end @class XDSCOperation; @interface XDSCClassFormatter : NSObject { } + (NSUInteger) compartmentsForClassifier: (id ) classifier withSpecification: (XDSCDisplaySpecification *) displaySpec; // expected-note {{previous definition is here}} @end @class NSString; @implementation XDSCClassFormatter + appendVisibility: (id ) element withSpecification: (XDSCDisplaySpecification *) displaySpec to: (NSMutableAttributedString *) attributedString { return 0; } + (NSUInteger) compartmentsForClassifier: (id ) 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