reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
// RUN: %clang_cc1 -fsyntax-only -Wdocumentation -verify %s
// rdar://12390371

/** @return s Test*/
struct s* f(void);
struct s;

struct s1;
/** @return s1 Test 1*/
struct s1* f1(void);

struct s2;
/** @return s2 Test 2*/
struct s2* f2(void);
struct s2;

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return s3 Test 3 - expected warning here */
struct s3;
struct s3* f3(void);

/** @return s4 Test 4 */
struct s4* f4(void);
struct s4 { int is; };

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return s5 Test 5  - expected warning here */
struct s5 { int is; };
struct s5* f5(void);

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return s6 Test 6  - expected warning here */
struct s6 *ps6;
struct s6* f6(void);

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return s7 Test 7  - expected warning here */
struct s7;
struct s7* f7(void);

struct s8 { int is8; };
/** @return s8 Test 8 */
struct s4 *f8(struct s8 *p);


/** @return e Test*/
enum e* g(void);
enum e;

enum e1;
/** @return e1 Test 1*/
enum e1* g1(void);

enum e2;
/** @return e2 Test 2*/
enum e2* g2(void);
enum e2;

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return e3 Test 3 - expected warning here */
enum e3;
enum e3* g3(void);

/** @return e4 Test 4 */
enum e4* g4(void);
enum e4 { one };

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return e5 Test 5  - expected warning here */
enum e5 { two };
enum e5* g5(void);

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return e6 Test 6  - expected warning here */
enum e6 *pe6;
enum e6* g6(void);

// expected-warning@+1 {{'@return' command used in a comment that is not attached to a function or method declaration}}
/** @return e7 Test 7  - expected warning here */
enum e7;
enum e7* g7(void);

enum e8 { three };
/** @return e8 Test 8 */
enum e4 *g8(enum e8 *p);