This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Emit Fortran PARAMETERs as DW_TAG_constant into debuginfo


On Sat, Aug 30, 2008 at 02:29:49PM +0200, Laurent GUERBY wrote:
> I confirm the patch below is the source of the Ada bootstrap failure:
> rev 139779 works and rev 139781 fails.

I think following patch should fix it (the first hunk only is needed,
the second one is just to handle more initializers).  Will bootstrap/regtest
it later this afternoon.

BTW, in the backport of the native_encode_initializer patch to 4.3 branch
Ada passed a type in DECL_INITIALIZER, the committed patch will avoid
it because of the inializer_constant_valid_p test I've added, but having
type in DECL_INITIALIZER seems terribly broken to me and surprises me
other code doesn't break on it.
In particular it was a PARM_DECL, which had
TREE_TYPE (parm) == DECL_INITIALIZER (parm) 
&& TREE_CODE (TREE_TYPE (parm)) == RECORD_TYPE.

2008-08-30  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (native_encode_initializer): Subtract min_index for
	non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.

--- gcc/dwarf2out.c.jj	2008-08-29 20:54:14.000000000 +0200
+++ gcc/dwarf2out.c	2008-08-30 15:09:42.000000000 +0200
@@ -11846,7 +11846,7 @@ native_encode_initializer (tree init, un
 		pos = (tree_low_cst (TREE_OPERAND (index, 0), 0) - min_index)
 		      * fieldsize;
 	      else if (index)
-		pos = tree_low_cst (index, 0) * fieldsize;
+		pos = (tree_low_cst (index, 0) - min_index) * fieldsize;
 
 	      if (val)
 		{
@@ -11916,6 +11916,9 @@ native_encode_initializer (tree init, un
 	  return true;
 	}
       return false;
+    case VIEW_CONVERT_EXPR:
+    case NON_LVALUE_EXPR:
+      return native_encode_initializer (TREE_OPERAND (init, 0), array, size);
     default:
       return native_encode_expr (init, array, size) == size;
     }


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]