aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2008-08-29 22:19:24 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2008-08-29 22:19:24 +0000
commit3852d2bef61369090fbf7cdab2980b36e281f2b8 (patch)
tree6a9ef8288afb39bb82c46f49130ebd160ae316d0
parente71197053782c0b874871d546f82ce91e0ca981b (diff)
downloadgcc-3852d2bef61369090fbf7cdab2980b36e281f2b8.zip
gcc-3852d2bef61369090fbf7cdab2980b36e281f2b8.tar.gz
gcc-3852d2bef61369090fbf7cdab2980b36e281f2b8.tar.bz2
mangle.c (write_type): Add target-specific manglings for non-fundamental types to the substitution table.
* mangle.c (write_type): Add target-specific manglings for non-fundamental types to the substitution table. * g++.dg/abi/mangle-neon.C: Add substitution test. From-SVN: r139791
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/mangle.c7
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle-neon.C4
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0020274..4318d60 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2008-08-29 Mark Mitchell <mark@codesourcery.com>
+
+ * mangle.c (write_type): Add target-specific manglings for
+ non-fundamental types to the substitution table.
+ gcc/testsuite/
+
2008-08-29 Jakub Jelinek <jakub@redhat.com>
PR fortran/29635
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 0703d0a..dea92b9 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1549,6 +1549,13 @@ write_type (tree type)
if (target_mangling)
{
write_string (target_mangling);
+ /* Add substitutions for types other than fundamental
+ types. */
+ if (TREE_CODE (type) != VOID_TYPE
+ && TREE_CODE (type) != INTEGER_TYPE
+ && TREE_CODE (type) != REAL_TYPE
+ && TREE_CODE (type) != BOOLEAN_TYPE)
+ add_substitution (type);
return;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7cae5e9..41185be 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-08-29 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/abi/mangle-neon.C: Add substitution test.
+
2008-08-29 Jakub Jelinek <jakub@redhat.com>
PR c/37261
diff --git a/gcc/testsuite/g++.dg/abi/mangle-neon.C b/gcc/testsuite/g++.dg/abi/mangle-neon.C
index 9f88f8b..a3fa65c 100644
--- a/gcc/testsuite/g++.dg/abi/mangle-neon.C
+++ b/gcc/testsuite/g++.dg/abi/mangle-neon.C
@@ -26,6 +26,8 @@ void f15 (float32x4_t a) {}
void f16 (poly8x16_t a) {}
void f17 (poly16x8_t a) {}
+void f18 (int8x16_t, int8x16_t) {}
+
// { dg-final { scan-assembler "_Z2f015__simd64_int8_t:" } }
// { dg-final { scan-assembler "_Z2f116__simd64_int16_t:" } }
// { dg-final { scan-assembler "_Z2f216__simd64_int32_t:" } }
@@ -44,4 +46,4 @@ void f17 (poly16x8_t a) {}
// { dg-final { scan-assembler "_Z3f1519__simd128_float32_t:" } }
// { dg-final { scan-assembler "_Z3f1617__simd128_poly8_t:" } }
// { dg-final { scan-assembler "_Z3f1718__simd128_poly16_t:" } }
-
+// { dg-final { scan-assembler "_Z3f1816__simd128_int8_tS_:" } }