Dear Chad,
I'm not in a position to hack the gpc code, but I just thought I'd confirm your result.
I confirm that your code produces eoln(input) and eof(input) true at the same time, which should not be possible in ISO Pascal. When input^ points to the character after the end of a file, we have EOF true with input^ undefined. When input^ is undefined, according to the pages about Pascal I just read, EOLN should be false.
Yours, Kevan