My compiler is complaining about cube_coord() and cube_coord_llur() not returning a value on all code paths. On looking at this I noticed that this is happening due the pattern used is not quite aligned with other code, as normally we do:
if (<error condition>)
ereport(<some error>);
do stuff;
PG_RETURN_....(value);
I've rearranged the code to be aligned more with what's normal. In passing I also adding some missing and removed some unneeded parenthesis, and also adjusted some white space.