diff options
| author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-30 22:30:34 +0000 |
|---|---|---|
| committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-30 22:30:34 +0000 |
| commit | 8f9758e67bf7e0b4f74bd5d60c941ef0ca93aff5 (patch) | |
| tree | aee24b2a12a5ea311774eaf196ad657bc620dd50 | |
| parent | a01275475cc2396fed5679e5a666df09e83148ca (diff) | |
| download | ppe42-gcc-8f9758e67bf7e0b4f74bd5d60c941ef0ca93aff5.tar.gz ppe42-gcc-8f9758e67bf7e0b4f74bd5d60c941ef0ca93aff5.zip | |
cp:
* call.c (build_over_call), typeck.c (build_function_call): Call
check_function_arguments instead of check_function_format.
testsuite:
* g++.dg/warn/nonnull1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83937 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/call.c | 5 | ||||
| -rw-r--r-- | gcc/cp/typeck.c | 6 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/warn/nonnull1.C | 16 |
5 files changed, 30 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4174c4028bb..4d15664a4b3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk> + * call.c (build_over_call), typeck.c (build_function_call): Call + check_function_arguments instead of check_function_format. + +2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk> + * call.c (build_over_call), typeck.c (build_function_call): Update calls to check_function_format. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 290fd6b2b43..76f0291a5a1 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -4723,9 +4723,8 @@ build_over_call (struct z_candidate *cand, int flags) converted_args = nreverse (converted_args); - if (warn_format) - check_function_format (TYPE_ATTRIBUTES (TREE_TYPE (fn)), - converted_args); + check_function_arguments (TYPE_ATTRIBUTES (TREE_TYPE (fn)), + converted_args); /* Avoid actually calling copy constructors and copy assignment operators, if possible. */ diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 1dfb3375067..d099980e486 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -2483,10 +2483,10 @@ build_function_call (tree function, tree params) if (coerced_params == error_mark_node) return error_mark_node; - /* Check for errors in format strings. */ + /* Check for errors in format strings and inappropriately + null parameters. */ - if (warn_format) - check_function_format (TYPE_ATTRIBUTES (fntype), coerced_params); + check_function_arguments (TYPE_ATTRIBUTES (fntype), coerced_params); return build_cxx_call (function, coerced_params); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 69d8c1926e2..b08ec7d199d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk> + + * g++.dg/warn/nonnull1.C: New test. + 2004-06-30 Eric Botcazou <ebotcazou@libertysurf.fr> * gcc.dg/compat/compat-common.h: Wrap up CINT in diff --git a/gcc/testsuite/g++.dg/warn/nonnull1.C b/gcc/testsuite/g++.dg/warn/nonnull1.C new file mode 100644 index 00000000000..46de7e9312c --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/nonnull1.C @@ -0,0 +1,16 @@ +// Test that "nonnull" attribute works for C++. +// Origin: Joseph Myers <jsm@polyomino.org.uk> +// { dg-do compile } +// { dg-options "-Wall" } + +// The "nonnull" attribute is thoroughly tested for C, so here we +// simply test that it works at all, as at one point the relevant +// checking code was only called for C. + +extern void f (char *) __attribute__((nonnull)); + +void +g () +{ + f (0); // { dg-warning "null" "null argument" } +} |

