summaryrefslogtreecommitdiffstats
path: root/gcc/cp
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-29 23:21:35 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-29 23:21:35 +0000
commit8b447d3f4f8509f90a13d4aa2fd435b84ff517f4 (patch)
treecc94a67e7b17460335b8b668eac1f55a166543ed /gcc/cp
parentd75cece1a80023500084e21c3dc9209d6891fb60 (diff)
downloadppe42-gcc-8b447d3f4f8509f90a13d4aa2fd435b84ff517f4.tar.gz
ppe42-gcc-8b447d3f4f8509f90a13d4aa2fd435b84ff517f4.zip
gcc/c-family:
PR c++/54930 * c.opt (Wreturn_local_addr): Define new option. gcc/c: PR c++/54930 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr. gcc/cp: PR c++/54930 * typeck.c (maybe_warn_about_returning_address_of_local): Use OPT_Wreturn_local_addr. gcc: PR c++/54930 * doc/invoke.texi (Warning Options): Document -Wno-return-local-addr. gcc/testsuite: PR c++/54930 * gcc.dg/Wreturn-local-addr.c: New. * g++.dg/warn/Wno-return-local-addr.C: New. * g++.dg/warn/Wreturn-local-addr.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192968 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/typeck.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 86050dafde3..1eb1fe4f2c1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR c++/54930
+ * typeck.c (maybe_warn_about_returning_address_of_local): Use
+ OPT_Wreturn_local_addr.
+
2012-10-26 Jakub Jelinek <jakub@redhat.com>
PR c++/55081
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 2514b6fc741..5d8c27d534c 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -8020,14 +8020,14 @@ maybe_warn_about_returning_address_of_local (tree retval)
if (TREE_CODE (whats_returned) == AGGR_INIT_EXPR
|| TREE_CODE (whats_returned) == TARGET_EXPR)
{
- warning (0, "returning reference to temporary");
+ warning (OPT_Wreturn_local_addr, "returning reference to temporary");
return;
}
if (TREE_CODE (whats_returned) == VAR_DECL
&& DECL_NAME (whats_returned)
&& TEMP_NAME_P (DECL_NAME (whats_returned)))
{
- warning (0, "reference to non-lvalue returned");
+ warning (OPT_Wreturn_local_addr, "reference to non-lvalue returned");
return;
}
}
@@ -8043,10 +8043,10 @@ maybe_warn_about_returning_address_of_local (tree retval)
|| TREE_PUBLIC (whats_returned)))
{
if (TREE_CODE (valtype) == REFERENCE_TYPE)
- warning (0, "reference to local variable %q+D returned",
+ warning (OPT_Wreturn_local_addr, "reference to local variable %q+D returned",
whats_returned);
else
- warning (0, "address of local variable %q+D returned",
+ warning (OPT_Wreturn_local_addr, "address of local variable %q+D returned",
whats_returned);
return;
}
OpenPOWER on IntegriCloud