RFR(s): 8218041: Assorted wrong/missing includes

David Holmes david.holmes at oracle.com
Wed Jan 30 10:52:56 UTC 2019


Hi Robbin,

On 30/01/2019 7:32 pm, Robbin Ehn wrote:
> Hi Kim, thanks!
> 
> Unfortunately I found an issue when building with clang 7.
> It seem to do much better inlning, so missing symbol at link 
> (HandleMark());
> I'm going over HandleMark constructor useage.
> I found so far 24 missing includes for handles.inline.hpp.

So if it compiles but there's no include of the .inline.hpp file that 
just means it won't get inlined - right? (ie the .hpp file must still be 
getting included)

David

> Compile testing this with all sort of compilers and options, now clang 
> works.
> 
> But the inline constructor just calls a non-inlined method:
> inline HandleMark::HandleMark() {
>    initialize(Thread::current());
> }
> 
> At least now Thread::current() is in thread.hpp, so the reason for 
> inline seem not true anymore. I'm thinking that maybe I should change it 
> and just include handles.hpp on the missing places. But since 
> HandleMarkCleaner needs the inline file it's very asymmetric with 
> HandleMark is fine with hpp but if you also use HandleMarkCleaner you 
> need the inline. So maybe I'll just leave the 'dummy' inline constructor.
> 
> So sending out an v2 of some sort.
> 
> /Robbin
> 
> On 2019-01-30 09:50, Kim Barrett wrote:
>>> On Jan 30, 2019, at 3:21 AM, Robbin Ehn <robbin.ehn at oracle.com> wrote:
>>>
>>> Hi all, please review.
>>>
>>> Code:
>>> http://cr.openjdk.java.net/~rehn/8218041/webrev/
>>> Issue:
>>> https://bugs.openjdk.java.net/browse/JDK-8218041
>>
>> Looks good.
>>


More information about the hotspot-dev mailing list