On 15 August 2013 15:08, Eli Friedman <[email protected]> wrote:
> On Mon, Jul 29, 2013 at 2:30 PM, Richard Smith <[email protected]>wrote: > >> 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. >> > > Ping. > Ping? I just hit this exact problem, the proposed patch seems right to me. Please commit? Nick
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
