aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-09-04 08:57:26 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-09-04 08:57:26 +0000
commit0fbf438441177627c8b16dc898af7e1211723fc1 (patch)
treeb653c8dd35eec8b62ecd7348a6377136416bf172 /gcc
parent7bacbe5c8a4e9dc1fac12da706753a47f8e78e14 (diff)
downloadgcc-0fbf438441177627c8b16dc898af7e1211723fc1.zip
gcc-0fbf438441177627c8b16dc898af7e1211723fc1.tar.gz
gcc-0fbf438441177627c8b16dc898af7e1211723fc1.tar.bz2
re PR c++/58305 (Deprecation warning for class not raised when not assigning to a variable)
/cp 2013-09-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58305 * typeck2.c (build_functional_cast): Maybe warn_deprecated_use. /testsuite 2013-09-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58305 * g++.dg/warn/deprecated-8.C: New. From-SVN: r202242
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/typeck2.c9
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/warn/deprecated-8.C15
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 823046b..c28f114 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2013-09-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/58305
+ * typeck2.c (build_functional_cast): Maybe warn_deprecated_use.
+
2013-09-03 Mike Stump <mikestump@comcast.net>
* Make-lang.in (cp/lambda.o): Add dependencies.
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 7932939..8882816 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -1761,7 +1761,14 @@ build_functional_cast (tree exp, tree parms, tsubst_flags_t complain)
return error_mark_node;
if (TREE_CODE (exp) == TYPE_DECL)
- type = TREE_TYPE (exp);
+ {
+ type = TREE_TYPE (exp);
+
+ if (complain & tf_warning
+ && TREE_DEPRECATED (type)
+ && DECL_ARTIFICIAL (exp))
+ warn_deprecated_use (type, NULL_TREE);
+ }
else
type = exp;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dbc88b1..40a7522 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-09-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/58305
+ * g++.dg/warn/deprecated-8.C: New.
+
2013-09-03 Jeff Law <law@redhat.com>
* tree-ssa/ssa-dom-thread-3.c: Update due to changes in debug
diff --git a/gcc/testsuite/g++.dg/warn/deprecated-8.C b/gcc/testsuite/g++.dg/warn/deprecated-8.C
new file mode 100644
index 0000000..8018110
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/deprecated-8.C
@@ -0,0 +1,15 @@
+// PR c++/58305
+
+class ToBeDeprecated {
+} __attribute__ ((deprecated ("deprecated!")));
+
+typedef ToBeDeprecated NotToBeDeprecated; // { dg-warning "'ToBeDeprecated' is deprecated" }
+
+int main() {
+
+ ToBeDeprecated(); // { dg-warning "'ToBeDeprecated' is deprecated" }
+ ToBeDeprecated x; // { dg-warning "'ToBeDeprecated' is deprecated" }
+
+ NotToBeDeprecated();
+ NotToBeDeprecated y;
+}