diff options
author | Christian Bruel <christian.bruel@st.com> | 2013-05-23 16:20:07 +0200 |
---|---|---|
committer | Christian Bruel <chrbr@gcc.gnu.org> | 2013-05-23 16:20:07 +0200 |
commit | b3851501be90860cfe5086b1cc4e7de247ac0404 (patch) | |
tree | 70ca1e83c7f6bbd96b3e3c6f0ee36cec6d040586 | |
parent | 4e1949126511bce6782106460e7df1907eeea1e2 (diff) | |
download | gcc-b3851501be90860cfe5086b1cc4e7de247ac0404.zip gcc-b3851501be90860cfe5086b1cc4e7de247ac0404.tar.gz gcc-b3851501be90860cfe5086b1cc4e7de247ac0404.tar.bz2 |
re PR debug/57351 (ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi)
2013-05-23 Christian Bruel <christian.bruel@st.com>
PR debug/57351
* config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
From-SVN: r199261
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/pr57351.c | 54 |
4 files changed, 65 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4db76e3..d107f45 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-05-23 Christian Bruel <christian.bruel@st.com> + + PR debug/57351 + * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number. + 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> Marcus Shawcroft <marcus.shawcroft@arm.com> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 951a0c9..43dfe27 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -25878,9 +25878,8 @@ arm_dwarf_register_span (rtx rtl) nregs = GET_MODE_SIZE (GET_MODE (rtl)) / 8; p = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (nregs)); - regno = (regno - FIRST_VFP_REGNUM) / 2; for (i = 0; i < nregs; i++) - XVECEXP (p, 0, i) = gen_rtx_REG (DImode, 256 + regno + i); + XVECEXP (p, 0, i) = gen_rtx_REG (DImode, regno + i); return p; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dcbfe25..b1895fb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-05-23 Christian Bruel <christian.bruel@st.com> + + PR debug/57351 + * gcc.dg/debug/pr57351.c: New test + 2013-05-23 Vidya Praveen <vidyapraveen@arm.com> * gcc.target/aarch64/vect-clz.c: New file. diff --git a/gcc/testsuite/gcc.dg/debug/pr57351.c b/gcc/testsuite/gcc.dg/debug/pr57351.c new file mode 100644 index 0000000..972f3e9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/pr57351.c @@ -0,0 +1,54 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_neon } */ +/* { dg-options "-std=c99 -Os -g -march=armv7-a" } */ +/* { dg-add-options arm_neon } */ + +typedef unsigned int size_t; +typedef int ptrdiff_t; +typedef signed char int8_t ; +typedef signed long long int64_t; +typedef int8_t GFC_INTEGER_1; +typedef GFC_INTEGER_1 GFC_LOGICAL_1; +typedef int64_t GFC_INTEGER_8; +typedef GFC_INTEGER_8 GFC_LOGICAL_8; +typedef ptrdiff_t index_type; +typedef struct descriptor_dimension +{ + index_type lower_bound; + index_type _ubound; +} +descriptor_dimension; +typedef struct { GFC_LOGICAL_1 *base_addr; size_t offset; index_type dtype; descriptor_dimension dim[7];} gfc_array_l1; +typedef struct { GFC_LOGICAL_8 *base_addr; size_t offset; index_type dtype; descriptor_dimension dim[7];} gfc_array_l8; +void +all_l8 (gfc_array_l8 * const restrict retarray, + gfc_array_l1 * const restrict array, + const index_type * const restrict pdim) +{ + GFC_LOGICAL_8 * restrict dest; + index_type n; + index_type len; + index_type delta; + index_type dim; + dim = (*pdim) - 1; + len = ((array)->dim[dim]._ubound + 1 - (array)->dim[dim].lower_bound); + for (n = 0; n < dim; n++) + { + const GFC_LOGICAL_1 * restrict src; + GFC_LOGICAL_8 result; + { + result = 1; + { + for (n = 0; n < len; n++, src += delta) + { + if (! *src) + { + result = 0; + break; + } + } + *dest = result; + } + } + } +} |