Home | History | Annotate | Download | only in Sema
      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