diff options
author | Geoffrey Keating <geoffk@apple.com> | 2006-08-22 19:16:03 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2006-08-22 19:16:03 +0000 |
commit | 9a23b833613b375031e84fc9c7dcb3b5ab875d42 (patch) | |
tree | 7bd3281bf5c5f9d7fc4641e7a22befdb48fed4a5 | |
parent | 5e8c38c2de194a8eb5733977325c982838f04390 (diff) | |
download | gcc-9a23b833613b375031e84fc9c7dcb3b5ab875d42.zip gcc-9a23b833613b375031e84fc9c7dcb3b5ab875d42.tar.gz gcc-9a23b833613b375031e84fc9c7dcb3b5ab875d42.tar.bz2 |
Index: gcc/ChangeLog
2006-08-21 Geoffrey Keating <geoffk@apple.com>
PR debug/28692
* dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
complex values, nor for generic vector values.
Index: gcc/testsuite/ChangeLog
2006-08-21 Geoffrey Keating <geoffk@apple.com>
PR debug/28692
* gcc.dg/debug/const-1.c: New.
* gcc.dg/debug/const-2.c: New.
* gcc.dg/debug/dwarf2/const-1.c: New.
* gcc.dg/debug/dwarf2/const-2.c: New.
* gcc.dg/debug/dwarf2/const-2b.c: New.
From-SVN: r116331
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/const-1.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/const-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/const-2.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/const-2b.c | 6 |
8 files changed, 45 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index caf083b..195c92b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-08-21 Geoffrey Keating <geoffk@apple.com> + + PR debug/28692 + * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for + complex values, nor for generic vector values. + 2006-08-22 Richard Guenther <rguenther@suse.de> PR middle-end/28776 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 896f853..76fd7f0 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -9942,10 +9942,13 @@ rtl_for_decl_init (tree init, tree type) rtl = gen_rtx_CONST_STRING (VOIDmode, ggc_strdup (TREE_STRING_POINTER (init))); } - /* Although DWARF could easily handle other kinds of aggregates, we - have no way to represent such values as RTL constants, so skip - those. */ - else if (AGGREGATE_TYPE_P (type)) + /* Other aggregates, and complex values, could be represented using + CONCAT: FIXME! */ + else if (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE) + ; + /* Vectors only work if their mode is supported by the target. + FIXME: generic vectors ought to work too. */ + else if (TREE_CODE (type) == VECTOR_TYPE && TYPE_MODE (type) == BLKmode) ; /* If the initializer is something that we know will expand into an immediate RTL constant, expand it now. We must be careful not to diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5c029fa..502921c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2006-08-21 Geoffrey Keating <geoffk@apple.com> + + PR debug/28692 + * gcc.dg/debug/const-1.c: New. + * gcc.dg/debug/const-2.c: New. + * gcc.dg/debug/dwarf2/const-1.c: New. + * gcc.dg/debug/dwarf2/const-2.c: New. + * gcc.dg/debug/dwarf2/const-2b.c: New. + 2006-08-22 Richard Guenther <rguenther@suse.de> PR middle-end/28776 diff --git a/gcc/testsuite/gcc.dg/debug/const-1.c b/gcc/testsuite/gcc.dg/debug/const-1.c new file mode 100644 index 0000000..bc52661 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/const-1.c @@ -0,0 +1,3 @@ +/* { dg-do compile } */ +typedef float FloatVect __attribute__((__vector_size__(16))); +static FloatVect Foo = { 250000000.0, 0.0, 0.0, 0.0 }; diff --git a/gcc/testsuite/gcc.dg/debug/const-2.c b/gcc/testsuite/gcc.dg/debug/const-2.c new file mode 100644 index 0000000..7b9c244 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/const-2.c @@ -0,0 +1,2 @@ +/* { dg-do compile } */ +static __complex__ int x = 3.0; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c new file mode 100644 index 0000000..aa20e6d --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c @@ -0,0 +1,6 @@ +/* { dg-do compile } */ +/* { dg-options "-O -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler "DW_AT_const_value" } } */ + +extern void x(); +static void (*f)() = x; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/const-2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/const-2.c new file mode 100644 index 0000000..d3039c6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/const-2.c @@ -0,0 +1,6 @@ +/* { dg-do compile { target powerpc*-*-* } } */ +/* { dg-options "-O -gdwarf-2 -dA -maltivec" } */ +/* { dg-final { scan-assembler "DW_AT_const_value" } } */ + +typedef float FloatVect __attribute__((__vector_size__(16))); +static FloatVect Foo = { 250000000.0, 0.0, 0.0, 0.0 }; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/const-2b.c b/gcc/testsuite/gcc.dg/debug/dwarf2/const-2b.c new file mode 100644 index 0000000..9d577ea --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/const-2b.c @@ -0,0 +1,6 @@ +/* { dg-do compile { target i386*-*-* } } */ +/* { dg-options "-O -gdwarf-2 -dA -msse" } */ +/* { dg-final { scan-assembler "DW_AT_const_value" } } */ + +typedef float FloatVect __attribute__((__vector_size__(16))); +static FloatVect Foo = { 250000000.0, 0.0, 0.0, 0.0 }; |