[PATCH] Fix for PR c/57563

Iyer, Balaji V balaji.v.iyer@intel.com
Mon Jun 10 15:08:00 GMT 2013



> -----Original Message-----
> From: Joseph Myers [mailto:joseph@codesourcery.com]
> Sent: Monday, June 10, 2013 10:40 AM
> To: Iyer, Balaji V
> Cc: gcc-patches@gcc.gnu.org; Jakub Jelinek; mpolacek@gcc.gnu.org
> Subject: Re: [PATCH] Fix for PR c/57563
> 
> On Sun, 9 Jun 2013, Iyer, Balaji V wrote:
> 
> > 	Attached, please find a patch that will fix the bug reported in PR
> > 57563. There are a couple issues that went wrong. First, in the test
> > case, we have a double multiplied to a double. When -std=c99 flag is
> > used, they get converted to long double. The way to fix this is to add
> > a type cast to the array notation to the same type as identity
> > variable and thus they will all be double.
> 
> You don't say what the actual error was, and neither does the original PR.
> But if it was an ICE from an EXCESS_PRECISION_EXPR getting to the gimplifier,
> that suggests that c_fully_fold isn't getting called somewhere it should be - and
> probably calling c_fully_fold is the correct fix rather than inserting a cast.  If you
> can get such ICEs for EXCESS_PRECISION_EXPR, it's quite possible you might get
> them for C_MAYBE_CONST_EXPR as well (e.g. try using 0 / 0, or compound
> literals of variably modified type, in various places in the affected expressions),
> which should be fixed by using c_fully_fold but not by inserting a cast.

It was not. It was actually a type mismatch between double and long double caught in verify_gimple_in_seq function.  So, is it OK for trunk?

Thanks,

Balaji V. Iyer.

> 
> --
> Joseph S. Myers
> joseph@codesourcery.com



More information about the Gcc-patches mailing list