I'm fairly sure that the type2 = check_typedef (type1); at valarith.c:277 is a typo and treally should be type2 = check_typedef (type2); but, with gdb, who knows?