https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72796

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-08-03
                 CC|                            |jason at redhat dot com
     Ever confirmed|0                           |1

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #1)
> markus@x4 js % cat jsarray.ii
> struct a;
> template <int> struct b { typedef a c; };
> struct d {
>   void e(int);
> };
> struct a : d {
>   void e(int) = delete;
> };
> template <int f> struct g : b<f>::c {
>   g(int) { this->d::e(0); }
> };
> struct h : g<0> {
>   using i = g;
>   h() : i(0) {}
> };
> 
> markus@x4 js % g++ -c jsarray.ii
> jsarray.ii: In instantiation of ‘g<f>::g(int) [with int f = 0]’:
> jsarray.ii:14:12:   required from here
> jsarray.ii:10:12: error: use of deleted function ‘void a::e(int)’
>    g(int) { this->d::e(0); }
>             ^~~~
> jsarray.ii:7:8: note: declared here
>    void e(int) = delete;
>         ^

Great, I triggered creduce before leaving work. Looks we've already have a
test-case ;)

Started with: r236221:

/home/marxin/Programming/testcases/pr72796.cc:10:21: error: ‘d’ is not a base
of ‘g<f>’
   g(int) { this->d::e(0); }

which changed in r237558 to the aforementioned error message.

Reply via email to