diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-decl.c | 4 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/deprecated-2.C | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/deprecated-3.c | 11 |
7 files changed, 44 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef37139..cf46719 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-29 Joseph S. Myers <jsm@polyomino.org.uk> + + PR c/7425 + * c-decl.c (merge_decls): Merge TREE_DEPRECATED. + 2004-09-29 Eric Christopher <echristo@redhat.com> * fold-const.c (tree_swap_operands_p): Remove duplicated code. diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 4137876..38a13fd 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1586,6 +1586,10 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype) make_var_volatile (newdecl); } + /* Merge deprecatedness. */ + if (TREE_DEPRECATED (newdecl)) + TREE_DEPRECATED (olddecl) = 1; + /* Keep source location of definition rather than declaration. */ if (DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0) DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl); diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4933e07..fa42fad 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2004-09-29 Joseph S. Myers <jsm@polyomino.org.uk> + + * decl.c (duplicate_decls): Merge TREE_DEPRECATED. + 2004-09-29 Jason Merrill <jason@redhat.com> PR tree-optimization/17697 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 3e394ab..c27d041 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -1722,6 +1722,10 @@ duplicate_decls (tree newdecl, tree olddecl) if (TREE_NOTHROW (newdecl)) TREE_NOTHROW (olddecl) = 1; + /* Merge deprecatedness. */ + if (TREE_DEPRECATED (newdecl)) + TREE_DEPRECATED (olddecl) = 1; + /* Merge the initialization information. */ if (DECL_INITIAL (newdecl) == NULL_TREE && DECL_INITIAL (olddecl) != NULL_TREE) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 05c6e3f..13e29d9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-29 Joseph S. Myers <jsm@polyomino.org.uk> + + PR c/7425 + * gcc.dg/deprecated-3.c, g++.dg/warn/deprecated-2.C: New tests. + 2004-09-29 Jakub Jelinek <jakub@redhat.com> * gcc.c-torture/execute/stdarg-1.c: New test. diff --git a/gcc/testsuite/g++.dg/warn/deprecated-2.C b/gcc/testsuite/g++.dg/warn/deprecated-2.C new file mode 100644 index 0000000..afddc8f --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/deprecated-2.C @@ -0,0 +1,11 @@ +/* Test __attribute__((deprecated)). Test merging with multiple + declarations. Bug 7425 (C++ version). */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +void func(void); +void func(void) __attribute__((deprecated)); + +void f(void) { + func(); /* { dg-warning "'func' is deprecated" } */ +} diff --git a/gcc/testsuite/gcc.dg/deprecated-3.c b/gcc/testsuite/gcc.dg/deprecated-3.c new file mode 100644 index 0000000..2c35bb3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/deprecated-3.c @@ -0,0 +1,11 @@ +/* Test __attribute__((deprecated)). Test merging with multiple + declarations. Bug 7425. */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +void func(void); +void func(void) __attribute__((deprecated)); + +void f(void) { + func(); /* { dg-warning "'func' is deprecated" } */ +} |