Oops, just noticed: You're using the MirPlacement enum to hold potentially multiple values:
void mir_surface_spec_set_placement(MirSurfaceSpec* spec, MirPlacement mode, MirRectangle* hint);
Compilers will start throwing up warnings and errors as soon as you pass in more than one value for 'mode'. So MirPlacement needs splitting into two types as we do for all other packed types:
typedef enum MirPlacementBits ...
typedef unsigned int MirPlacement;
Also missing a test case that will demonstrate the compiler error.
Oops, just noticed: You're using the MirPlacement enum to hold potentially multiple values: spec_set_ placement( MirSurfaceSpec* spec, MirPlacement mode, MirRectangle* hint);
void mir_surface_
Compilers will start throwing up warnings and errors as soon as you pass in more than one value for 'mode'. So MirPlacement needs splitting into two types as we do for all other packed types:
typedef enum MirPlacementBits ...
typedef unsigned int MirPlacement;
Also missing a test case that will demonstrate the compiler error.