diff options
author | matz <matz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-02 04:22:45 +0000 |
---|---|---|
committer | matz <matz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-02 04:22:45 +0000 |
commit | ae84079f60ba4b17406aa3cdf1eae1cea010ffe7 (patch) | |
tree | 81e0ec0700839598638506aadcfb471636db87e6 /gcc/testsuite/g++.dg/warn | |
parent | 0dc02c83cfce5adc2119ed59f21c228aa392a606 (diff) |
PR c++/19542
* c-common.c (c_common_nodes_and_builtins): Create global null_node.
(warn_strict_null_sentinel): Define.
(check_function_sentinel): Check for null_node as valid sentinel too.
* c-common.h (c_tree_index): Added CTI_NULL.
(null_node) Define global_tree[CTI_NULL].
(warn_strict_null_sentinel): Declare.
* c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
* c.opt: (Wstrict-null-sentinel): New C++ option.
* doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
* cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
common frontend.
(null_node): Remove.
* lex.c (cxx_init): Move null_node initialisation to C common frontend.
* g++.dg/warn/sentinel.C: New testcase for __null sentinels added.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99091 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg/warn')
-rw-r--r-- | gcc/testsuite/g++.dg/warn/sentinel.C | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/warn/sentinel.C b/gcc/testsuite/g++.dg/warn/sentinel.C new file mode 100644 index 00000000000..5f718f83047 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/sentinel.C @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-Wall" } */ +extern void ex (int i, ...) __attribute__ ((__sentinel__(0))); + +void f() +{ + ex (1, 0); /* { dg-warning "missing sentinel in function call" "" } */ + ex (1, 0L); /* { dg-warning "missing sentinel in function call" "" } */ + ex (1, (void *)0); + ex (1, __null); /* { dg-bogus "sentinel" } */ +} |