Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-10-10 Thread Jakub Jelinek
On Mon, Oct 08, 2018 at 03:36:18PM +0200, Andreas Schwab wrote: > This still doesn't fix the tests. Sure, one needs to add the constexpr virtual calls for ia64 as I said in the mail. Jakub

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-10-08 Thread Andreas Schwab
On Sep 20 2018, Jakub Jelinek wrote: > --- gcc/cp/class.c.jj 2018-09-20 09:56:59.229751895 +0200 > +++ gcc/cp/class.c2018-09-20 10:12:17.447370890 +0200 > @@ -9266,7 +9266,6 @@ build_vtbl_initializer (tree binfo, >tree vcall_index; >tree fn, fn_original; >tree init = N

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-27 Thread Jakub Jelinek
On Thu, Sep 27, 2018 at 07:08:41PM -0400, Marek Polacek wrote: > > This patch is OK. And your suggestion for cxx_eval_call_expression > > sounds right, too. Marek, will you follow up on that? > > Ok, I will (provided I can get a box that has TARGET_VTABLE_USES_DESCRIPTORS, > I > think ppc64 BE

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-27 Thread Jason Merrill
On Thu, Sep 27, 2018, 7:08 PM Marek Polacek wrote: > On Thu, Sep 27, 2018 at 01:15:46AM -0400, Jason Merrill wrote: > > On Thu, Sep 20, 2018 at 5:20 AM, Jakub Jelinek wrote: > > > On Thu, Sep 20, 2018 at 09:12:53AM +0200, Andreas Schwab wrote: > > >> On Sep 19 2018, Jason Merrill wrote: > > >>

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-27 Thread Marek Polacek
On Thu, Sep 27, 2018 at 01:15:46AM -0400, Jason Merrill wrote: > On Thu, Sep 20, 2018 at 5:20 AM, Jakub Jelinek wrote: > > On Thu, Sep 20, 2018 at 09:12:53AM +0200, Andreas Schwab wrote: > >> On Sep 19 2018, Jason Merrill wrote: > >> > >> > Andreas, do the new testcases pass? That would surprise

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-26 Thread Jason Merrill
On Thu, Sep 20, 2018 at 5:20 AM, Jakub Jelinek wrote: > On Thu, Sep 20, 2018 at 09:12:53AM +0200, Andreas Schwab wrote: >> On Sep 19 2018, Jason Merrill wrote: >> >> > Andreas, do the new testcases pass? That would surprise me, but OK if so. >> >> No, they don't. >> >> /usr/local/gcc/gcc-2018092

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-20 Thread Jakub Jelinek
On Thu, Sep 20, 2018 at 09:12:53AM +0200, Andreas Schwab wrote: > On Sep 19 2018, Jason Merrill wrote: > > > Andreas, do the new testcases pass? That would surprise me, but OK if so. > > No, they don't. > > /usr/local/gcc/gcc-20180920/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual2.C:29:26: > e

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-20 Thread Andreas Schwab
On Sep 19 2018, Jason Merrill wrote: > Andreas, do the new testcases pass? That would surprise me, but OK if so. No, they don't. /usr/local/gcc/gcc-20180920/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual2.C:29:26: error: non-constant condition for static assertion /usr/local/gcc/gcc-20180920/gc

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-19 Thread Jason Merrill
On Wed, Sep 19, 2018 at 11:10 AM, Marek Polacek wrote: > On Wed, Sep 19, 2018 at 05:07:34PM +0200, Andreas Schwab wrote: >> On Sep 19 2018, Marek Polacek wrote: >> >> > 2018-09-19 Marek Polacek >> > >> > * class.c (build_vtbl_initializer): Don't mess with *inits for >> > TARGET_VTABLE_

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-19 Thread Marek Polacek
On Wed, Sep 19, 2018 at 05:07:34PM +0200, Andreas Schwab wrote: > On Sep 19 2018, Marek Polacek wrote: > > > 2018-09-19 Marek Polacek > > > > * class.c (build_vtbl_initializer): Don't mess with *inits for > > TARGET_VTABLE_USES_DESCRIPTORS. > > > > diff --git gcc/cp/class.c gcc/cp/clas

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-19 Thread Andreas Schwab
On Sep 19 2018, Marek Polacek wrote: > 2018-09-19 Marek Polacek > > * class.c (build_vtbl_initializer): Don't mess with *inits for > TARGET_VTABLE_USES_DESCRIPTORS. > > diff --git gcc/cp/class.c gcc/cp/class.c > index 9ca46441871..0239f6ae045 100644 > --- gcc/cp/class.c > +++ gcc/c

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-19 Thread Marek Polacek
On Wed, Sep 19, 2018 at 03:25:02PM +0200, Andreas Schwab wrote: > I'm getting this ICE on ia64: > > libtool: compile: /usr/local/gcc/gcc-20180919/Build/./gcc/xgcc > -shared-libgcc -B/usr/local/gcc/gcc-20180919/Build/./gcc -nostdinc++ > -L/usr/local/gcc/gcc-20180919/Build/ia64-suse-linux/libstdc

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-19 Thread Andreas Schwab
I'm getting this ICE on ia64: libtool: compile: /usr/local/gcc/gcc-20180919/Build/./gcc/xgcc -shared-libgcc -B/usr/local/gcc/gcc-20180919/Build/./gcc -nostdinc++ -L/usr/local/gcc/gcc-20180919/Build/ia64-suse-linux/libstdc++-v3/src -L/usr/local/gcc/gcc-20180919/Build/ia64-suse-linux/libstdc++-v

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-18 Thread Marek Polacek
On Tue, Sep 18, 2018 at 02:29:16PM -0400, Jason Merrill wrote: > > --- gcc/cp/class.c > > +++ gcc/cp/class.c > > @@ -9266,6 +9266,7 @@ build_vtbl_initializer (tree binfo, > >tree vcall_index; > >tree fn, fn_original; > >tree init = NULL_TREE; > > + tree idx = build_int_

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-18 Thread Jason Merrill
On Tue, Sep 18, 2018 at 11:25 AM, Marek Polacek wrote: > On Mon, Sep 17, 2018 at 11:28:06PM -0400, Jason Merrill wrote: >> On Mon, Sep 17, 2018 at 5:39 PM, Marek Polacek wrote: >> > On Fri, Sep 14, 2018 at 04:45:22PM -0400, Marek Polacek wrote: >> >> On Fri, Sep 14, 2018 at 04:30:46PM -0400, Jaso

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v4)

2018-09-18 Thread Marek Polacek
On Mon, Sep 17, 2018 at 11:28:06PM -0400, Jason Merrill wrote: > On Mon, Sep 17, 2018 at 5:39 PM, Marek Polacek wrote: > > On Fri, Sep 14, 2018 at 04:45:22PM -0400, Marek Polacek wrote: > >> On Fri, Sep 14, 2018 at 04:30:46PM -0400, Jason Merrill wrote: > >> > On Fri, Sep 14, 2018 at 1:19 PM, Mare

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions

2018-09-17 Thread Jason Merrill
On Mon, Sep 17, 2018 at 5:39 PM, Marek Polacek wrote: > On Fri, Sep 14, 2018 at 04:45:22PM -0400, Marek Polacek wrote: >> On Fri, Sep 14, 2018 at 04:30:46PM -0400, Jason Merrill wrote: >> > On Fri, Sep 14, 2018 at 1:19 PM, Marek Polacek wrote: >> > > This patch implements another bit of C++20, vi

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions

2018-09-17 Thread Marek Polacek
On Fri, Sep 14, 2018 at 04:45:22PM -0400, Marek Polacek wrote: > On Fri, Sep 14, 2018 at 04:30:46PM -0400, Jason Merrill wrote: > > On Fri, Sep 14, 2018 at 1:19 PM, Marek Polacek wrote: > > > This patch implements another bit of C++20, virtual calls in constant > > > expression: > > >

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions

2018-09-14 Thread Marek Polacek
On Fri, Sep 14, 2018 at 04:30:46PM -0400, Jason Merrill wrote: > On Fri, Sep 14, 2018 at 1:19 PM, Marek Polacek wrote: > > This patch implements another bit of C++20, virtual calls in constant > > expression: > > > > The basic

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions

2018-09-14 Thread Jason Merrill
On Fri, Sep 14, 2018 at 1:19 PM, Marek Polacek wrote: > This patch implements another bit of C++20, virtual calls in constant > expression: > > The basic idea is that since in a constant expression we know the dynamic > type (t

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions (v2)

2018-09-14 Thread Marek Polacek
On Fri, Sep 14, 2018 at 07:36:47PM +0200, Jakub Jelinek wrote: > On Fri, Sep 14, 2018 at 01:19:50PM -0400, Marek Polacek wrote: > > + /* We expect something in the form of &x.D.2103.D.2094; get x. */ > > + if (TREE_CODE (obj) != ADDR_EXPR) > > + return t; > > Shouldn't it then be a gcc_ass

Re: C++ PATCH to implement P1064R0, Virtual Function Calls in Constant Expressions

2018-09-14 Thread Jakub Jelinek
On Fri, Sep 14, 2018 at 01:19:50PM -0400, Marek Polacek wrote: > + /* We expect something in the form of &x.D.2103.D.2094; get x. */ > + if (TREE_CODE (obj) != ADDR_EXPR) > + return t; Shouldn't it then be a gcc_assert instead, or code like: if (TREE_CODE (obj) != ADDR_EXPR)