Eli Zaretskii <eliz@gnu.org> schrieb am Sa., 22. Apr. 2017 um 09:42 Uhr:
> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Fri, 21 Apr 2017 22:05:58 +0200
>
> nsterm.m:6969:8: error: member reference base type 'enum z_group' is not a structure or union
>   if (!NILP (FRAME_Z_GROUP (f)))
>        ^~~~~~~~~~~~~~~~~~~~~~~~

It should compare against z_group_none instead.

Pushed eb52828a43 to fix.
 

> (Tangentially, is there any reason not to define Lisp_Object as struct
> unconditionally, to avoid such coding errors?)

Yes, it produces slower code.

Are you sure that's still the case? I've just diffed the assembly output for editfns.c with and without --enable-check-lisp-object-type, they seem identical (apart from minor diffs due to different register allocation and instruction ordering). Replacing a primitive value with a struct containing such a value should never degrade performance; that would be a compiler bug.