<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
This seems dubious, doesn't it, to state something is not initiallized, and then initialize it?<br>It triggers an assertion failure in gcc 4.6 backend.<br><br>RTCollector.m3<br><br>(479) declare_global name:null size:0X4000000(67108864) align:0X40(64) type:struct type_id:0x747D8491 exported:false initialized:false var:0x3B m3name:L_2<br>(14190) init_var offset:0X2280(8832) var:0x3B:L_2 0 one_field: offset:0x2280 size:0x20<br><br><br>Yes I realize it is initialized to zero.<br>I don't know if it is obviously initialized to all zeros, as I don't see the size in declare_global..er..rather, yes, there is a size there...is it real, or just some large guess..? I haven't looked..<br><br><br>I'm going to try this little hack:<br><br><br>M3CG_HANDLER (INIT_VAR)<br>{<br>  tree f = { 0 };<br>  tree v = { 0 };<br><br>#if GCC46<br>  if (DECL_COMMON (var))<br>  {<br>    if (option_trace_all)<br>      fprintf (stderr, " clearing DECL_COMMON on %s", m3_get_var_trace_name (var));<br>    DECL_COMMON (var) = false;<br>  }<br>#endif<br><br>  TREE_USED (var) = true;<br>  one_field (offset, POINTER_SIZE, t_addr, &f, &v);<br>  TREE_VALUE (v) = m3_build2 (POINTER_PLUS_EXPR, t_addr,<br>                              m3_build1 (ADDR_EXPR, t_addr, var),<br>                              size_int (b));<br>}<br><br>The assertion is in gcc-4.6/gcc/config/darwin.c<br><br>darwin_asm_output_aligned_decl_local<br><br>  /* .. and it should be suitable for placement in local mem.  */<br>  gcc_assert(!TREE_PUBLIC (decl) && !DECL_COMMON (decl));<br>  /* .. and any initializer must be all-zero.  */<br>  gcc_assert ((DECL_INITIAL (decl) == NULL) <br>           || (DECL_INITIAL (decl) == error_mark_node) <br>           || initializer_zerop (DECL_INITIAL (decl)));<br><br><br>The first one I think. I think it is common.<br><br><br> - Jay<br>                                        </div></body>
</html>