From 43bf2fc511e63c6b47f5b4e1c7cefb3a986565f3 Mon Sep 17 00:00:00 2001 From: mmitchel Date: Fri, 29 Aug 2008 22:19:24 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139791 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/mangle.c | 7 +++++++ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/g++.dg/abi/mangle-neon.C | 4 +++- 4 files changed, 20 insertions(+), 1 deletion(-) 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 + + * mangle.c (write_type): Add target-specific manglings for + non-fundamental types to the substitution table. + gcc/testsuite/ + 2008-08-29 Jakub Jelinek 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 + + * g++.dg/abi/mangle-neon.C: Add substitution test. + 2008-08-29 Jakub Jelinek 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_:" } } -- 2.7.4