Why?.
Because the chip database changes with just about every compiler, and especially on recently supported chips is commonly full of errors like this.
Hence in the 'forum guidelines', you have as ...
Thanks for very useful code.
I'm working on position and speed reading, but I'm using 18f4431.
18f4431 has some disadvantages (program memory low, price high...).
I have a lot of 18f46k20. Your ...