This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH,c++] fix PR objc++/48479, ICE in cxx_mark_addressable
- From: Nathan Froyd <froydnj at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: jason at redhat dot com
- Date: Thu, 14 Apr 2011 08:15:17 -0700
- Subject: Re: [PATCH,c++] fix PR objc++/48479, ICE in cxx_mark_addressable
- References: <20110407133715.GA18081@nightcrawler>
On Thu, Apr 07, 2011 at 09:37:17AM -0400, Nathan Froyd wrote:
> My recent patch removing DECL_RTL from CONST_DECLs caused regressions in
> the ObjC++ testsuite on Darwin targets. The problem is that
> DECL_REGISTER was being called on CONST_DECLs; DECL_REGISTER says:
>
> /* In VAR_DECL and PARM_DECL nodes, nonzero means declared `register'. */
> #define DECL_REGISTER(NODE) (DECL_WRTL_CHECK (NODE)->decl_common.decl_flag_0)
>
> Previously, the DECL_WRTL_CHECK was succeeding when given CONST_DECLs;
> it no longer does.
>
> The suggested fix is to simply move the CONST_DECL case in
> cxx_mark_addressable; since DECL_REGISTER would have always returned
> false for CONST_DECLs, there's no change in functionality. Fixing
> DECL_REGISTER to accurately reflect its comment would be helpful, but
> there are other ICEs to fix if DECL_REGISTER only takes PARM_DECL and
> VAR_DECL; I thought it best to submit that as a separate fix, if at all.
>
> Patch was tested on Darwin targets via IainS and Dominique and fixed the
> regression. OK to commit?
Ping. http://gcc.gnu.org/ml/gcc-patches/2011-04/msg00548.html
-Nathan