From d5d4d14e156d91fa4f5490eee269b6fc01b12160 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 4 Jan 2011 22:44:04 +0000 Subject: dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the initializer. * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the initializer. Skip view conversions from aggregate types. From-SVN: r168488 --- gcc/dwarf2out.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gcc/dwarf2out.c') diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 9fe1e9c..22ee324 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -16526,6 +16526,8 @@ rtl_for_decl_init (tree init, tree type) { rtx rtl = NULL_RTX; + STRIP_NOPS (init); + /* If a variable is initialized with a string constant without embedded zeros, build CONST_STRING. */ if (TREE_CODE (init) == STRING_CST && TREE_CODE (type) == ARRAY_TYPE) @@ -16550,7 +16552,10 @@ rtl_for_decl_init (tree init, tree type) } /* Other aggregates, and complex values, could be represented using CONCAT: FIXME! */ - else if (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE) + else if (AGGREGATE_TYPE_P (type) + || (TREE_CODE (init) == VIEW_CONVERT_EXPR + && AGGREGATE_TYPE_P (TREE_TYPE (TREE_OPERAND (init, 0)))) + || TREE_CODE (type) == COMPLEX_TYPE) ; /* Vectors only work if their mode is supported by the target. FIXME: generic vectors ought to work too. */ -- cgit v1.1