On Sat, 2014-05-10 at 07:42 +0200, Václav Zeman wrote:
> On 9.5.2014 23:14, David Malcolm wrote:
> > This patch is 2.2MB in size, so I've uploaded it to:
> > http://dmalcolm.fedorapeople.org/gcc/large-patches/6fb783b39f914574a1889aa51d06c08cf55678b4-0002-Autogenerated-part-of-introduction-of-GCC_OPTION-mac.patch
> > 
> > (even just the ChangeLog would be 160KB)
> > 
> 
> I have only skimmed through the patch but I have found one replacement
> that does not seem correct:
> 
> > diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
> > index a6afb6c..d03cdfb 100644
> > --- a/gcc/config/rs6000/rs6000.h
> > +++ b/gcc/config/rs6000/rs6000.h
> > @@ -394,13 +394,13 @@ extern const char *host_detect_local_cpu (int argc, 
> > const char **argv);
> >                              | MASK_DEBUG_TARGET \
> >                              | MASK_DEBUG_BUILTIN)
> >  
> > -#define    TARGET_DEBUG_STACK      (rs6000_debug & MASK_DEBUG_STACK)
> > -#define    TARGET_DEBUG_ARG        (rs6000_debug & MASK_DEBUG_ARG)
> 
> The above two lines are replaced...
> 
> > -#define TARGET_DEBUG_REG   (rs6000_debug & MASK_DEBUG_REG)
> > -#define TARGET_DEBUG_ADDR  (rs6000_debug & MASK_DEBUG_ADDR)
> > -#define TARGET_DEBUG_COST  (rs6000_debug & MASK_DEBUG_COST)
> > -#define TARGET_DEBUG_TARGET        (rs6000_debug & MASK_DEBUG_TARGET)
> > -#define TARGET_DEBUG_BUILTIN       (rs6000_debug & MASK_DEBUG_BUILTIN)
> > +#define    GCC_OPTION (TARGET_DEBUG_STACK) (GCC_OPTION (rs6000_debug) & 
> > MASK_DEBUG_STACK)
> > +#define    GCC_OPTION (TARGET_DEBUG_ARG)   (GCC_OPTION (rs6000_debug) & 
> > MASK_DEBUG_ARG)
> 
> ...by the lines above. That does not seem right.

Thanks.  My script parses all .opt files across all targets, and so it
can't handle this being an option in config/frv/frv.opt:

mdebug-stack
Target Undocumented Var(TARGET_DEBUG_STACK)

in conjunction with that being a macro in config/rs6000; same for
TARGET_DEBUG_ARG.  I already specialcased around a similar case with
TARGET_ACCUMULATE_OUTGOING_ARGS, with a
  Var(TARGET_ACCUMULATE_OUTGOING_ARGS)
in sh.opt vs a
  Mask(ACCUMULATE_OUTGOING_ARGS)
in i386.opt, leading to similar breakage, so it's likely there are more
such issues with the patch.  Bother.

Thanks again for spotting this.
Dave

Reply via email to