TARGET_VALID_POINTER_MODE unused?
Paul Koning
paul_koning@dell.com
Sat Oct 30 15:57:00 GMT 2010
On Oct 29, 2010, at 5:48 PM, Andrew Pinski wrote:
> On Fri, Oct 29, 2010 at 2:28 PM, Paul Koning <paul_koning@dell.com> wrote:
>> I see documentation for TARGET_VALID_POINTER_MODE, and I see ports that define it... but I don't see any code that uses it.
>
> Ok, there are two issues it seems. First it is used in target.def:
> /* True if MODE is valid for a pointer in __attribute__((mode("MODE"))). */
> DEFHOOK
> (valid_pointer_mode,
> "",
> bool, (enum machine_mode mode),
> default_valid_pointer_mode)
>
> But the other issue is that the default
> default_addr_space_pointer_mode does not use it which means it is
> unused really. I think we should only have one or the other hook
> really.
Thanks. I did not know the correct string to look for ("valid_pointer_mode" without the prefix). I did find a reference or two.
What triggered the question is that I'm trying to debug a testsuite ICE in fortran, pdp11 target, where it aborts in convert_memory_address_addr_space apparently trying to make a 32 bit pointer. But only 16 bit pointers are valid, ptr_mode is HImode as expected and as far as I can tell from gccint everything is set up correctly for that to be the only pointer type. I don't have TARGET_VALID_POINTER_MODE defined and from what the documentation says it doesn't seem like I have to. So where should I look to find an explanation for why the fortran compiler is trying to make an SImode pointer?
paul
More information about the Gcc
mailing list