----- Original Message ----- > From: "Aaron Ballman" <[email protected]> > To: [email protected] > Sent: Monday, January 20, 2014 8:19:44 AM > Subject: r199663 - Making some minor improvements to r199626. > > Author: aaronballman > Date: Mon Jan 20 08:19:44 2014 > New Revision: 199663 > > URL: http://llvm.org/viewvc/llvm-project?rev=199663&view=rev > Log: > Making some minor improvements to r199626. > > Modified: > cfe/trunk/include/clang/Basic/Attr.td > cfe/trunk/lib/Sema/SemaDeclAttr.cpp > cfe/trunk/test/Sema/nonnull.c >
[snip] > Modified: cfe/trunk/test/Sema/nonnull.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/nonnull.c?rev=199663&r1=199662&r2=199663&view=diff > ============================================================================== > --- cfe/trunk/test/Sema/nonnull.c (original) > +++ cfe/trunk/test/Sema/nonnull.c Mon Jan 20 08:19:44 2014 > @@ -32,10 +32,10 @@ void test_baz() { > baz3(0); // no-warning > } > > -void test_void_returns_nonnull() __attribute__((returns_nonnull)); > // expected-warning {{'returns_nonnull' attribute only applies to > return values that are pointers}} > -int test_int_returns_nonnull() __attribute__((returns_nonnull)); // > expected-warning {{'returns_nonnull' attribute only applies to > return values that are pointers}} > -void *test_ptr_returns_nonnull() __attribute__((returns_nonnull)); > // no-warning > +void test_void_returns_nonnull(void) > __attribute__((returns_nonnull)); // expected-warning > {{'returns_nonnull' attribute only applies to return values that are > pointers}} > +int test_int_returns_nonnull(void) __attribute__((returns_nonnull)); > // expected-warning {{'returns_nonnull' attribute only applies to > return values that are pointers}} > +void *test_ptr_returns_nonnull(void) > __attribute__((returns_nonnull)); // no-warning > > int i __attribute__((nonnull)); // expected-warning {{'nonnull' > attribute only applies to functions, methods, and parameters}} > int j __attribute__((returns_nonnull)); // expected-warning > {{'returns_nonnull' attribute only applies to functions and > methods}} > - > +void *test_no_fn_proto() __attribute__((returns_nonnull)); // > expected-warning {{'returns_nonnull' attribute only applies to > functions and methods}} This last check seems wrong to me. There is now a difference between this: void *test_ptr_returns_nonnull(void) __attribute__((returns_nonnull)); which we handle and this: void *test_ptr_returns_nonnull() __attribute__((returns_nonnull)); for which we ignore the attribute. However: - Most people don't put void in the parameter lists, and - gcc 4.9.0 does not distinguish between the two forms w.r.t. the application of this attribute. Can you please fix this? Thanks again, Hal > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > -- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
