c++: Fix bootstrap on 32-bit hosts [PR91828]
authorJason Merrill <jason@redhat.com>
Thu, 3 Dec 2020 21:38:19 +0000 (16:38 -0500)
committerJason Merrill <jason@redhat.com>
Thu, 3 Dec 2020 22:49:17 +0000 (17:49 -0500)
commit9a7f5e3906560b7a894047caf146d7c21cb02f2b
tree7ae63477abb341b3985e3dff80a14743f8dcf71d
parentdce6c58db87ebf7f4477bd3126228e73e4eeee97
c++: Fix bootstrap on 32-bit hosts [PR91828]

Using the releasing_vec op[] with an int index was breaking on 32-bit hosts
because of ambiguity with the built-in operator and the conversion
function.  Since the built-in operator has a ptrdiff_t, this was fine on
64-bit targets where ptrdiff_t is larger than int, but broke on 32-bit
targets where it's the same as int, making the conversion for that argument
better than the member function.  Fixed by changing the member function to
also use ptrdiff_t for the index.

gcc/cp/ChangeLog:

* cp-tree.h (releasing_vec::operator[]): Change parameter type to
ptrdiff_t.
gcc/cp/cp-tree.h