r360559 - [c++20] P1064R0: Allow virtual function calls in constant expression

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Mon May 13 10:33:19 PDT 2019


Thanks for the revert and the reduced test case.

On Mon, 13 May 2019, 07:50 Hans Wennborg via cfe-commits, <
cfe-commits at lists.llvm.org> wrote:

> Here's a creduced repro:
>
> --
> class a {};
> class b : virtual a {
>   virtual bool c(const void *, int);
> };
> class C : b {
> public:
>   bool c(const void *, int);
> };
> int d;
> bool e() {
>   C f;
>   if (f.c(&d, d))
>     ;
> }
> --
>
> $ clang.bad -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -std=c++14
> a.cc
>
> The assert goes away if invoking clang with -w.
>
> From: Hans Wennborg <hans at chromium.org>
> Date: Mon, May 13, 2019 at 3:16 PM
> To: Richard Smith
> Cc: cfe-commits
>
> > This caused asserts in Chromium, so I've reverted in r360580. There's
> > a repro at
> https://bugs.chromium.org/p/chromium/issues/detail?id=962458#c1,
> > and I'm working on a reduced version.
> >
> > From: Richard Smith via cfe-commits <cfe-commits at lists.llvm.org>
> > Date: Mon, May 13, 2019 at 9:39 AM
> > To: <cfe-commits at lists.llvm.org>
> >
> > > Author: rsmith
> > > Date: Mon May 13 00:42:10 2019
> > > New Revision: 360559
> > >
> > > URL: http://llvm.org/viewvc/llvm-project?rev=360559&view=rev
> > > Log:
> > > [c++20] P1064R0: Allow virtual function calls in constant expression
> > > evaluation.
> > >
> > > Modified:
> > >     cfe/trunk/include/clang/AST/DeclCXX.h
> > >     cfe/trunk/include/clang/Basic/DiagnosticASTKinds.td
> > >     cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> > >     cfe/trunk/include/clang/Sema/Sema.h
> > >     cfe/trunk/lib/AST/DeclCXX.cpp
> > >     cfe/trunk/lib/AST/ExprConstant.cpp
> > >     cfe/trunk/lib/Sema/SemaDeclCXX.cpp
> > >     cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
> > >     cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
> > >     cfe/trunk/test/CXX/drs/dr18xx.cpp
> > >     cfe/trunk/test/CXX/drs/dr6xx.cpp
> > >     cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp
> > >     cfe/trunk/test/SemaCXX/cxx17-compat.cpp
> > >     cfe/trunk/www/cxx_status.html
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190513/b923f4e9/attachment.html>


More information about the cfe-commits mailing list