r187374 - PR16715: Fix assert in verifier: only mark call to 'operator new' as 'builtin' if

Richard Smith richard at metafoo.co.uk
Mon Jul 29 14:30:46 PDT 2013


On Mon, Jul 29, 2013 at 2:00 PM, Eli Friedman <eli.friedman at gmail.com>wrote:

> On Mon, Jul 29, 2013 at 1:14 PM, Richard Smith
> <richard-llvm at metafoo.co.uk> wrote:
> > Author: rsmith
> > Date: Mon Jul 29 15:14:16 2013
> > New Revision: 187374
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=187374&view=rev
> > Log:
> > PR16715: Fix assert in verifier: only mark call to 'operator new' as
> 'builtin' if
> > corresponding 'operator new' was actually emitted as a function marked
> 'nobuiltin'.
>
> There's a similar bug involving LTO; consider the following:
>
> a.cpp:
> using size_t = decltype(sizeof(0));
> void *operator new(size_t) __attribute__((alias("something")));
>
> b.cpp:
> int *pr16715 = new int;
>
> If I link these two together with llvm-link, I get exactly the same error.
>
> Overall, this seems like a very fragile constraint; maybe we can relax
> it somehow?


It would seem reasonable to me for the verifier to allow the 'builtin'
attribute on calls to functions declared without 'nobuiltin'. Patch
attached.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130729/396866a2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: no-check-builtin-nobuiltin.diff
Type: application/octet-stream
Size: 1383 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130729/396866a2/attachment.obj>


More information about the cfe-commits mailing list