diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Sema/warn-documentation.cpp | 72 | ||||
| -rw-r--r-- | clang/test/Sema/warn-documentation.m | 62 |
2 files changed, 134 insertions, 0 deletions
diff --git a/clang/test/Sema/warn-documentation.cpp b/clang/test/Sema/warn-documentation.cpp index 34d8f5fd2da..0c92b2aa029 100644 --- a/clang/test/Sema/warn-documentation.cpp +++ b/clang/test/Sema/warn-documentation.cpp @@ -1210,3 +1210,75 @@ template <class T> T test_function (T arg); /*! @function test_function<int> */ template <> int test_function<int> (int arg); + +namespace AllowParamAndReturnsOnFunctionPointerVars { + +/** + * functionPointerVariable + * + * @param i is integer. + * @returns integer. + */ +int (*functionPointerVariable)(int i); + +struct HasFields { + /** + * functionPointerField + * + * @param i is integer. + * @returns integer. + */ + int (*functionPointerField)(int i); +}; + +// expected-warning@+5 {{'\returns' command used in a comment that is attached to a function returning void}} +/** + * functionPointerVariable + * + * \param p not here. + * \returns integer. + */ +void (*functionPointerVariableThatLeadsNowhere)(); + +// Still warn about param/returns commands for variables that don't specify +// the type directly: + +/** + * FunctionPointerTypedef + * + * \param i is integer. + * \returns integer. + */ +typedef int (*FunctionPointerTypedef)(int i); + +/** + * FunctionPointerTypealias + * + * \param i is integer. + * \returns integer. + */ +using FunctionPointerTypealias = int (*)(int i); + +// expected-warning@+5 {{'@param' command used in a comment that is not attached to a function declaration}} +// expected-warning@+5 {{'@returns' command used in a comment that is not attached to a function or method declaration}} +/** + * functionPointerVariable + * + * @param i is integer. + * @returns integer. + */ +FunctionPointerTypedef functionPointerTypedefVariable; + +struct HasMoreFields { + // expected-warning@+5 {{'\param' command used in a comment that is not attached to a function declaration}} + // expected-warning@+5 {{'\returns' command used in a comment that is not attached to a function or method declaration}} + /** + * functionPointerTypealiasField + * + * \param i is integer. + * \returns integer. + */ + FunctionPointerTypealias functionPointerTypealiasField; +}; + +} diff --git a/clang/test/Sema/warn-documentation.m b/clang/test/Sema/warn-documentation.m index 5e95e2a1e8a..a8538f02be1 100644 --- a/clang/test/Sema/warn-documentation.m +++ b/clang/test/Sema/warn-documentation.m @@ -229,3 +229,65 @@ int FooBar(); - (void) VarArgMeth : (id)arg, ... {} @end +/** + * blockPointerVariable + * + * @param i is integer. + * @returns integer. + */ +int (^blockPointerVariable)(int i); + +struct HasFields { + /** + * blockPointerField + * + * \param i is integer. + * \returns integer. + */ + int (^blockPointerFields)(int i); +}; + +// expected-warning@+5 {{'\returns' command used in a comment that is attached to a function returning void}} +/** + * functionPointerVariable + * + * \param p not here. + * \returns integer. + */ +void (^blockPointerVariableThatLeadsNowhere)(); + +@interface CheckFunctionBlockPointerVars { + /** + * functionPointerIVar + * + * @param i is integer. + * @returns integer. + */ + int (*functionPointerIVar)(int i); + + /** + * blockPointerIVar + * + * \param i is integer. + * \returns integer. + */ + int (^blockPointerIVar)(int i); +} + +/** + * functionPointerProperty + * + * @param i is integer. + * @returns integer. + */ +@property int (*functionPointerProperty)(int i); + +/** + * blockPointerProperty + * + * \param i is integer. + * \returns integer. + */ +@property int (^blockPointerProperty)(int i); + +@end |

