aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2010-01-25 03:14:25 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2010-01-25 03:14:25 +0000
commitd147cbd9029c1079d33efccc2b2dcfb98dd8b48d (patch)
treefaebf1f9f3cb4742c68a4a6ecb3f6986d939d6ff
parentdd291a2ebca07c3558df16fa579460385c55d226 (diff)
downloadgcc-d147cbd9029c1079d33efccc2b2dcfb98dd8b48d.zip
gcc-d147cbd9029c1079d33efccc2b2dcfb98dd8b48d.tar.gz
gcc-d147cbd9029c1079d33efccc2b2dcfb98dd8b48d.tar.bz2
re PR c++/42748 (warnings about 'mangling of 'va_list' has changed in GCC 4.4' not suppressed in sytem headers)
PR c++/42748 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to mangling of va_list in system headers. PR c++/42748 * g++.dg/abi/arm_va_list2.C: New test. * g++.dg/abi/arm_va_list2.h: Companion header file. From-SVN: r156202
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c2
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/abi/arm_va_list2.C7
-rw-r--r--gcc/testsuite/g++.dg/abi/arm_va_list2.h4
5 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a9602fe..c590273 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/42748
+ * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
+ mangling of va_list in system headers.
+
2010-01-23 Toon Moene <toon@moene.org>
* tree-predcom.c (combine_chains): Return NULL, not false.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index e9ea2bd..ffff9ab 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -21372,7 +21372,7 @@ arm_mangle_type (const_tree type)
&& lang_hooks.types_compatible_p (CONST_CAST_TREE (type), va_list_type))
{
static bool warned;
- if (!warned && warn_psabi)
+ if (!warned && warn_psabi && !in_system_header)
{
warned = true;
inform (input_location,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b9dd124..2b0cfc6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/42748
+ * g++.dg/abi/arm_va_list2.C: New test.
+ * g++.dg/abi/arm_va_list2.h: Companion header file.
+
2010-01-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41044
diff --git a/gcc/testsuite/g++.dg/abi/arm_va_list2.C b/gcc/testsuite/g++.dg/abi/arm_va_list2.C
new file mode 100644
index 0000000..f5e4ca4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/arm_va_list2.C
@@ -0,0 +1,7 @@
+// { dg-do compile }
+// { dg-options "-Wpsabi" }
+// { dg-require-effective-target arm_eabi }
+
+#include <stdarg.h>
+#include "arm_va_list2.h"
+
diff --git a/gcc/testsuite/g++.dg/abi/arm_va_list2.h b/gcc/testsuite/g++.dg/abi/arm_va_list2.h
new file mode 100644
index 0000000..ebfb2de
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/arm_va_list2.h
@@ -0,0 +1,4 @@
+// The mangling of va_list changed in GCC 4.4. We want to warn about
+// that -- but not in a system header.
+#pragma GCC system_header
+void f(va_list) {}