RFR(S) 7172226: HotSpot fails to build with GCC 4.7 because of stricter c++ argument dependent lookup

Mikael Gerdin mikael.gerdin at oracle.com
Thu May 31 06:15:22 PDT 2012


Hi all,
New version of the webrev, I changed the wrapper functions existing in 
binaryTreeDictionary.hpp to use "using" as well and changed the comment.
I also removed some calls that already used fully qualified function 
names to call to the parent class to also use "using".

http://cr.openjdk.java.net/~mgerdin/7172226/webrev.1/

/Mikael

On 2012-05-30 20:39, Igor Veresov wrote:
> I think "using" in nicer, since you have to write it only once.
>
> igor
>
> On May 30, 2012, at 8:28 AM, Jon Masamitsu wrote:
>
>> Mikael,
>>
>> Thanks for doing these changes.  It's fine as it is but did you consider
>> the "using" directive?  I'm asking because I'm trying to decide in
>> a similar situation if I should use "using".  Asking for advice more
>> than making a suggestion.
>>
>> Jon
>>
>> On 5/29/2012 8:07 AM, Mikael Gerdin wrote:
>>> (changed the subject to clarify that there's a code review hidden in here)
>>>
>>> As stated earlier in this thread GCC 4.7 has become more strict when doing name lookup in template classes.
>>> I have a patch that will fix the build
>>> http://cr.openjdk.java.net/~mgerdin/7172226/webrev.0/
>>>
>>> but I'm not sure about the style, the code already contains some wrapper functions which look like they tried to solve the same problem.
>>>
>>> Does anyone have any suggestions on how to handle this more cleanly?
>>>
>>> Thanks
>>> /Mikael
>>>
>>> On 2012-05-29 15:11, Andrew Hughes wrote:
>>>>
>>>>
>>>> ----- Original Message -----
>>>>> Andrew,
>>>>>
>>>>> I filed 7172226
>>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7172226 (not
>>>>> available yet)
>>>>> See below for the patch.
>>>>>
>>>>> On 2012-05-28 15:34, Andrew Hughes wrote:
>>>>>>
>>>>>>
>>>>>> ----- Original Message -----
>>>>>>> Hi Andrew,
>>>>>>>
>>>>>>> On 2012-05-28 14:57, Andrew Hughes wrote:
>>> (...)
>>>>>>>
>>>>>>> I've seen this when I tried building with GCC 4.7 as well.
>>>>>>> This problem comes from 9f059abe8cf2, "Generalize the CMS free
>>>>>>> list
>>>>>>> code" which introduced some templates.
>>>>>>> It appears that GCC 4.7 is more strict when doing argument
>>>>>>> dependent
>>>>>>> lookup than 4.6.
>>>>>>> The fix is to do just what gcc suggests and use this->* or use the
>>>>>>> qualified name of the function, for example
>>>>>>> TreeList<Chunk>::link_tail
>>>>>>> in the first failure. As you can see there are already some places
>>>>>>> in
>>>>>>> that code which use the fully qualified name.
>>>>>>>
>>>>>>> I just discovered that I had a patch that fixes most of these
>>>>>>> issues
>>>>>>> in
>>>>>>> binaryTreeDictionary so I'll go ahead and file a CR for this.
>>>>>>>
>>>>>>> Regards
>>>>>>> /mg
>>>>>>>
>>>>>>
>>>>>> Thanks Mikael.  If you could post the patch, it would be much
>>>>>> appreciated.
>>>>>> I can't build OpenJDK8 at present.
>>>>>
>>>>> I've uploaded my fix (only build tested) to
>>>>> http://cr.openjdk.java.net/~mgerdin/7172226/webrev.0/
>>>>>
>>>>> /mg
>>>>>
>>>>>>
>>>>>>> --
>>>>>>> Mikael Gerdin
>>>>>>> Java SE VM SQE Stockholm
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Mikael Gerdin
>>>>> Java SE VM SQE Stockholm
>>>>>
>>>>
>>>> Thanks.  This patch worked and I've committed it to the IcedTea OpenJDK8 tree:
>>>>
>>>> http://hg.openjdk.java.net/icedtea/jdk8/hotspot/rev/f1947ffdccd9
>>>>
>>>> Can someone with JPRT access please push this through?
>>>
>

-- 
Mikael Gerdin
Java SE VM SQE Stockholm


More information about the hotspot-dev mailing list