On 11/9/18 2:28 PM, Michael Matz wrote:
> Hi,
>
> On Thu, 8 Nov 2018, Martin Liška wrote:
>
>>> That seems better. But still, why declare this in system.h? It seems
>>> hash-table.h seems more appropriate.
>>
>> I need to declare it before I'll poison it. As system.h is included very
>> early, one can guarantee that there will be no usage before the
>> poisoning happens.
>
> Yes but it's also included everywhere, so adding anything to it comes at a
> cost, and conceptually it simply doesn't belong there.
Agree.
>
> There's no fundamental reason why we can't poison identifiers in other
> headers. Indeed we do in vec.h. So move the whole thing including
> poisoning to hash-table.h?
That's not feasible as gcc/gcc/genhooks.c files use the function and
we don't want to include hash-table.h in the generator files.
So second candidate can be gcc/hash-traits.h, but it's also not working:
/home/marxin/Programming/gcc/gcc/hash-traits.h:270:17: error:
‘gt_pointer_operator’ has not been declared
pch_nx (T &p, gt_pointer_operator op, void *cookie)
^~~~~~~~~~~~~~~~~~~
so we should eventually come up with "hash.h" and include it in many places as
there's following usage
in hash-traits.h:
212 inline hashval_t
213 string_hash::hash (const char *id)
214 {
215 return hash_string (id);
216 }
So it's question whether it worth doing that?
Martin
>
>
> Ciao,
> Michael.
>