Re: r300443 - Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice verse, and definitions

2017-04-17 Thread Richard Smith via cfe-commits
On 17 April 2017 at 14:41, Vassil Vassilev wrote: > + Richard > > Thanks for the example. We've seen similar issue with inlines (without the > reverted patch). My guess this patch exposed it. > > It is not clear to me why we think the declaration is a definition there...

Re: r300443 - Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice verse, and definitions

2017-04-17 Thread Vassil Vassilev via cfe-commits
+ Richard Thanks for the example. We've seen similar issue with inlines (without the reverted patch). My guess this patch exposed it. It is not clear to me why we think the declaration is a definition there... On 17/04/17 23:10, Benjamin Kramer via cfe-commits wrote: This broke our internal

Re: r300443 - Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice verse, and definitions

2017-04-17 Thread Yaron Keren via cfe-commits
Thanks, I will look into this. ‫בתאריך יום ג׳, 18 באפר׳ 2017 ב-0:11 מאת ‪Benjamin Kramer‬‏ <‪ benny@gmail.com‬‏>:‬ > This broke our internal build of libc++ with modules. Reduced test > case attached, courtesy of Richard Smith! > > With your patch it doesn't compiler anymore: > While

Re: r300443 - Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice verse, and definitions

2017-04-17 Thread Benjamin Kramer via cfe-commits
This broke our internal build of libc++ with modules. Reduced test case attached, courtesy of Richard Smith! With your patch it doesn't compiler anymore: While building module 'x': In file included from :2: In file included from ./c.h:1: ./a.h:3:32: error: inline declaration of 'f' follows

r300443 - Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice verse, and definitions are

2017-04-17 Thread Yaron Keren via cfe-commits
Author: yrnkrn Date: Mon Apr 17 03:51:20 2017 New Revision: 300443 URL: http://llvm.org/viewvc/llvm-project?rev=300443=rev Log: Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice