// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-objc-root-class -Wdocumentation -Wdocumentation-pedantic -verify %s @class NSString; // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @interface Test1 // expected-warning@+2 {{empty paragraph passed to '\brief' command}} /** * \brief\author Aaa * \param aaa Aaa * \param bbb Bbb */ + (NSString *)test1:(NSString *)aaa suffix:(NSString *)bbb; // expected-warning@+2 {{parameter 'aab' not found in the function declaration}} expected-note@+2 {{did you mean 'aaa'?}} /** * \param aab Aaa */ + (NSString *)test2:(NSString *)aaa; // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @property int test3; // a property: ObjCPropertyDecl // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @property int test4; // a property: ObjCPropertyDecl @end // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @interface Test1() @end // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @implementation Test1 // a class implementation : ObjCImplementationDecl + (NSString *)test1:(NSString *)aaa suffix:(NSString *)bbb { return 0; } + (NSString *)test2:(NSString *)aaa { return 0; } @synthesize test3; // a property implementation: ObjCPropertyImplDecl @dynamic test4; // a property implementation: ObjCPropertyImplDecl // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa NSString *_test5; @end // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @interface Test1(Test1Category) // a category: ObjCCategoryDecl // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa + (NSString *)test3:(NSString *)aaa; @end // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @implementation Test1(Test1Category) // a category implementation: ObjCCategoryImplDecl + (NSString *)test3:(NSString *)aaa { return 0; } @end // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @protocol TestProto1 // a protocol: ObjCProtocolDecl @end int a; // expected-warning@+1 {{empty paragraph passed to '\brief' command}} /// \brief\author Aaa @interface Test4 @end int b; @interface TestReturns1 /// \returns Aaa - (int)test1:(NSString *)aaa; // expected-warning@+1 {{'\returns' command used in a comment that is attached to a method returning void}} /// \returns Aaa - (void)test2:(NSString *)aaa; @end // expected-warning@+2 {{parameter 'bbb' not found in the function declaration}} expected-note@+2 {{did you mean 'ccc'?}} /// \param aaa Meow. /// \param bbb Bbb. /// \returns aaa. typedef int (^test_param1)(int aaa, int ccc);