This is the mail archive of the 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] Fix PR 18965, a c++ and gimplifier fix

On Dec 15, 2004, at 2:41 PM, Roger Sayle wrote:

On Wed, 15 Dec 2004, Jason Merrill wrote:
On Wed, 15 Dec 2004 06:06:21 -0700 (MST), Roger Sayle <> wrote:
And the gimplifier.c change is OK, if you also fix the spelling error
in the comment you move, "indicies" -> "indices".

I don't like the gimplifier change. How hard is it really to fully support RANGE_EXPRs?

I suspect that adding full support for RANGE_EXPRs is unsuitable for
current current stage3. Andrew's regression fix avoids the middle-end
ICEing in the common case that can be handled without much effort, and
in addition to C++ should help GCC's other front-ends (including gpc and
PL/1) that may not possess the same level of understanding of the 4.0's
gimplification process.

It was not hard and is very simple as I made RANGE_EXPR make a loop so we get run into a compile time issue and a memory problem which we are trying to fix with RANGE_EXPR. I also hear this is needed to fix PR 18191 also which I implemented it and not worry about not being suitable for stage 3/regression only.

It's not clear to me that this special case code buys us anything.

Handling the upper bound equal to the lower bound buys us exactly the same regression fix as the "workaround" in the C++ front-end, but has the added benefit of fixing this issue across front-ends.

I kept the special case so we get this "optimization" at -O0 also.

OK? Bootstrapped and tested on powerpc-darwin with no regressions.

Andrew Pinski

	* gimplify.c (gimplify_init_ctor_eval): Handle fully RANGE_EXPR
	in a CONSTRUCTOR by creating a loop.

Attachment: fixRANGE.diff.txt
Description: Text document

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