aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/c-decl.c4
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/warn/deprecated-2.C11
-rw-r--r--gcc/testsuite/gcc.dg/deprecated-3.c11
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" } */
+}