On Tue, 9 Oct 2018 at 14:48, Paolo Carlini <paolo.carl...@oracle.com> wrote:
>
> Hi,
>
> On 09/10/18 15:33, Jonathan Wakely wrote:
> > On Tue, 9 Oct 2018 at 14:30, Paul Koning <paulkon...@comcast.net> wrote:
> >> I'm trying to build the current code on Linux with GCC 4.3.2 (stock 
> >> compiler in Fedora 10 which is my old test system).  It fails like this:
> >>
> >> In file included from 
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/tree-data-ref.h:27,
> >>                   from 
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/gimple-loop-interchange.cc:44:
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/opt-problem.h: In constructor 
> >> ‘opt_result::opt_result(bool, opt_problem*)’:
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/opt-problem.h:217: error: class 
> >> ‘opt_result’ does not have any field named ‘opt_wrapper’
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/opt-problem.h:217: error: no 
> >> matching function for call to ‘opt_wrapper<bool>::opt_wrapper()’
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/opt-problem.h:160: note: 
> >> candidates are: opt_wrapper<T>::opt_wrapper(T, opt_problem*) [with T = 
> >> bool]
> >> /mnt/hgfs/pkoning/Documents/svn/gcc/gcc/opt-problem.h:147: note:           
> >>       opt_wrapper<bool>::opt_wrapper(const opt_wrapper<bool>&)
> >> make[3]: *** [gimple-loop-interchange.o] Error 1
> >>
> >> Is 9.0 supposed to build with a build compiler this old?
> > Yes.
> >
> > GCC 4.3 doesn't define the injected-class-name for the base, so this
> > patch is needed:
> >
> > --- a/gcc/opt-problem.h
> > +++ b/gcc/opt-problem.h
> > @@ -214,7 +214,7 @@ class opt_result : public opt_wrapper <bool>
> >     /* Private ctor.  Instances should be created by the success and failure
> >        static member functions.  */
> >     opt_result (wrapped_t result, opt_problem *problem)
> > -  : opt_wrapper (result, problem)
> > +  : opt_wrapper<bool> (result, problem)
> >     {}
> >   };
>
> At the end of August my colleague Jose Marchesi fixed another instance
> of the same issue, affecting classes auto_edge_flag and auto_bb_flag. I
> think we can commit this change too as obvious.

Committed as obvious.
commit a40f123115ad44525029a7abe5304b45c0a9d43d
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Sat Oct 13 12:12:00 2018 +0100

    Fix compilation failure with C++98 compilers
    
            * opt-problem.h (opt_wrapper): Use template-argument-list when 
naming
            the base class, because using the injected-class-name was not 
clearly
            specified until DR 176.

diff --git a/gcc/opt-problem.h b/gcc/opt-problem.h
index 68d7e4a5f7b..55d0ff024f7 100644
--- a/gcc/opt-problem.h
+++ b/gcc/opt-problem.h
@@ -214,7 +214,7 @@ class opt_result : public opt_wrapper <bool>
   /* Private ctor.  Instances should be created by the success and failure
      static member functions.  */
   opt_result (wrapped_t result, opt_problem *problem)
-  : opt_wrapper (result, problem)
+  : opt_wrapper <bool> (result, problem)
   {}
 };
 

Reply via email to