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

Eli Friedman eli.friedman at gmail.com
Mon Jul 29 14:00:25 PDT 2013


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?

-Eli



More information about the cfe-commits mailing list