1 // RUN: %clang_cc1 -fsyntax-only -Wdocumentation -verify %s 2 // rdar://12390371 3 4 /** @return s Test*/ 5 struct s* f(void); 6 struct s; 7 8 struct s1; 9 /** @return s1 Test 1*/ 10 struct s1* f1(void); 11 12 struct s2; 13 /** @return s2 Test 2*/ 14 struct s2* f2(void); 15 struct s2; 16 17 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 18 /** @return s3 Test 3 - expected warning here */ 19 struct s3; 20 struct s3* f3(void); 21 22 /** @return s4 Test 4 */ 23 struct s4* f4(void); 24 struct s4 { int is; }; 25 26 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 27 /** @return s5 Test 5 - expected warning here */ 28 struct s5 { int is; }; 29 struct s5* f5(void); 30 31 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 32 /** @return s6 Test 6 - expected warning here */ 33 struct s6 *ps6; 34 struct s6* f6(void); 35 36 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 37 /** @return s7 Test 7 - expected warning here */ 38 struct s7; 39 struct s7* f7(void); 40 41 struct s8 { int is8; }; 42 /** @return s8 Test 8 */ 43 struct s4 *f8(struct s8 *p); 44 45 46 /** @return e Test*/ 47 enum e* g(void); 48 enum e; 49 50 enum e1; 51 /** @return e1 Test 1*/ 52 enum e1* g1(void); 53 54 enum e2; 55 /** @return e2 Test 2*/ 56 enum e2* g2(void); 57 enum e2; 58 59 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 60 /** @return e3 Test 3 - expected warning here */ 61 enum e3; 62 enum e3* g3(void); 63 64 /** @return e4 Test 4 */ 65 enum e4* g4(void); 66 enum e4 { one }; 67 68 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 69 /** @return e5 Test 5 - expected warning here */ 70 enum e5 { two }; 71 enum e5* g5(void); 72 73 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 74 /** @return e6 Test 6 - expected warning here */ 75 enum e6 *pe6; 76 enum e6* g6(void); 77 78 // expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}} 79 /** @return e7 Test 7 - expected warning here */ 80 enum e7; 81 enum e7* g7(void); 82 83 enum e8 { three }; 84 /** @return e8 Test 8 */ 85 enum e4 *g8(enum e8 *p); 86