On Mon, Jul 29, 2013 at 2:00 PM, Eli Friedman <[email protected]>wrote:
> On Mon, Jul 29, 2013 at 1:14 PM, Richard Smith > <[email protected]> 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.
no-check-builtin-nobuiltin.diff
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
