aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2016-10-12 17:09:26 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2016-10-12 17:09:26 +0200
commit56b31d3e8235beccc7ccf9fb534888a9ab949a0c (patch)
treef13c56550063d7595d9618c5cc199f2222801158
parent4b77ac40f0fe35d541914de0227b5c37d88c619c (diff)
downloadgcc-56b31d3e8235beccc7ccf9fb534888a9ab949a0c.zip
gcc-56b31d3e8235beccc7ccf9fb534888a9ab949a0c.tar.gz
gcc-56b31d3e8235beccc7ccf9fb534888a9ab949a0c.tar.bz2
rs6000: Warn for "GCC vector passed by reference" only with -Wpsabi
* config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for vector return by reference only if -Wpsabi. (rs6000_pass_by_reference): Similarly, for argument passing. From-SVN: r241058
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 35f38ff..ccbe7ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
+ vector return by reference only if -Wpsabi.
+ (rs6000_pass_by_reference): Similarly, for argument passing.
+
2016-10-12 David Malcolm <dmalcolm@redhat.com>
* function-tests.c: Include "print-rtl.h".
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 3a164e9..c816718 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -10952,7 +10952,7 @@ rs6000_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
static bool warned_for_return_big_vectors = false;
if (!warned_for_return_big_vectors)
{
- warning (0, "GCC vector returned by reference: "
+ warning (OPT_Wpsabi, "GCC vector returned by reference: "
"non-standard ABI extension with no compatibility guarantee");
warned_for_return_big_vectors = true;
}
@@ -12610,7 +12610,7 @@ rs6000_pass_by_reference (cumulative_args_t cum ATTRIBUTE_UNUSED,
fprintf (stderr, "function_arg_pass_by_reference: synthetic vector\n");
if (!warned_for_pass_big_vectors)
{
- warning (0, "GCC vector passed by reference: "
+ warning (OPT_Wpsabi, "GCC vector passed by reference: "
"non-standard ABI extension with no compatibility guarantee");
warned_for_pass_big_vectors = true;
}