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
This commit is contained in:
Geoffrey Keating 2006-08-22 19:16:03 +00:00 committed by Geoffrey Keating
parent 5e8c38c2de
commit 9a23b83361
8 changed files with 45 additions and 4 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 };

View File

@ -0,0 +1,2 @@
/* { dg-do compile } */
static __complex__ int x = 3.0;

View File

@ -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;

View File

@ -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 };

View File

@ -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 };