------- Comment #2 from manu at gcc dot gnu dot org  2008-01-14 00:42 -------
Good catch!

Well, there is something weird going on

$ cc1 -fdump-tree-original -O winit-self.c

{
  int i = i;

    int i = i;
  return i;
}

$ cc1plus -fdump-tree-original -O winit-self.c

{
  int i;

    int i;
  <<cleanup_point <<< Unknown tree: expr_stmt
  (void) (i = i) >>>
>>;
  return <retval> = i;
}


The first problem is that C++ FE does not generate a DECL_EXPR but a BIND_EXPR,
so it does not trigger the conditional in c-gimplify.c (c_gimplify_expr). My
guess is that this have never worked in C++. So we can just delete this option
from the C++ FE and convert this to an enhancement request. If none disagrees,
I will submit a patch in the next days.


-- 

manu at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu dot org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |diagnostic
   Last reconfirmed|0000-00-00 00:00:00         |2008-01-14 00:42:56
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772

Reply via email to