[PATCH 15/18] move REAL_IDENTIFIER_TYPE_VALUE to be a field of lang_identifier
Nathan Froyd
froydnj@codesourcery.com
Fri Mar 11 14:04:00 GMT 2011
On Fri, Mar 11, 2011 at 08:40:24AM -0500, Jason Merrill wrote:
> On 03/10/2011 11:23 PM, Nathan Froyd wrote:
>> I'm not overly fond of the conditionals (especially in error_operand_p)
>> but I don't think it's reasonable to make IDENTIFIER_NODE bigger and
>> penalize the other FEs just because the C++ FE is playing games with
>> TREE_TYPE.
>
> The C++ FE expects that we can check the TREE_TYPE of anything that
> appears as an expression, and uses IDENTIFIER_NODE to indicate a
> dependent name within templates. If you want to break TREE_TYPE on
> IDENTIFIER_NODE, you need to change the representation of dependent
> names so that we can continue to use TREE_TYPE on all expressions.
I'm confused. Isn't this what the switching on IDENTIFIER_NODE in a
number of places is doing? (And any future places that g++/libstdc++
didn't catch will be an ICE.) Or are you saying that you don't want the
switching and IDENTIFIER_NODEs should retain TREE_TYPE unless and until
somebody comes forth with a better design?
-Nathan
More information about the Gcc-patches
mailing list