From 1f0e2ace93ef562291720eab89f23c1637ed4ffd Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Wed, 4 Jan 2006 09:17:15 +0100
Subject: [PATCH] pmm_malloc.h (posix_memalign): If __cplusplus, make the
 prototype extern "C" and add throw ().

	* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
	make the prototype extern "C" and add throw ().

	* g++.dg/other/i386-2.C: New test.

From-SVN: r109318
---
 gcc/ChangeLog                       |  3 +++
 gcc/config/i386/pmm_malloc.h        |  6 +++++-
 gcc/testsuite/ChangeLog             |  2 ++
 gcc/testsuite/g++.dg/other/i386-2.C | 12 ++++++++++++
 4 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/g++.dg/other/i386-2.C

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 754f14fe8797..90d37de683d3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
 
+	* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
+	make the prototype extern "C" and add throw ().
+
 	PR target/25554
 	* config/i386/i386.md (testqi_ext_3): Ensure len is positive
 	and pos non-negative and pos + len <= 32.
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index ae09aad31c6e..744ac6d41cc1 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2006 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -31,7 +31,11 @@
 
 /* We can't depend on <stdlib.h> since the prototype of posix_memalign
    may not be visible.  */
+#ifndef __cplusplus
 extern int posix_memalign (void **, size_t, size_t);
+#else
+extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+#endif
 
 static __inline void *
 _mm_malloc (size_t size, size_t alignment)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7dda6a144bd3..1e33d4c9c634 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,7 @@
 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
 
+	* g++.dg/other/i386-2.C: New test.
+
 	PR target/25554
 	* gcc.c-torture/compile/20051228-1.c: New test.
 
diff --git a/gcc/testsuite/g++.dg/other/i386-2.C b/gcc/testsuite/g++.dg/other/i386-2.C
new file mode 100644
index 000000000000..b988f9d93da1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/i386-2.C
@@ -0,0 +1,12 @@
+/* Test that {,x,e,p}mmintrin.h and mm_malloc.h are
+   usable with -pedantic-errors.  */
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-pedantic-errors -msse3" } */
+
+#include <mmintrin.h>
+#include <xmmintrin.h>
+#include <emmintrin.h>
+#include <pmmintrin.h>
+#include <mm_malloc.h>
+
+int dummy;
-- 
GitLab