===================================================================
@@ -3457,8 +3457,10 @@ finish_id_expression (tree id_expression,
}
}
- if (TREE_DEPRECATED (decl))
- warn_deprecated_use (decl, NULL_TREE);
+ /* Handle references (c++/56130). */
+ tree t = INDIRECT_REF_P (decl) ? TREE_OPERAND (decl, 0) : decl;
+ if (TREE_DEPRECATED (t))
+ warn_deprecated_use (t, NULL_TREE);
return decl;
}
===================================================================
@@ -0,0 +1,17 @@
+// PR c++/56130
+
+int g_nn;
+int& g_n __attribute__((deprecated)) = g_nn;
+
+void f()
+{
+ int f_nn;
+ int& f_n __attribute__((deprecated)) = f_nn;
+ f_n = 1; // { dg-warning "'f_n' is deprecated" }
+}
+
+int main()
+{
+ g_n = 1; // { dg-warning "'g_n' is deprecated" }
+ f();
+}