The C standard does not allow returning expressions in functions
returning void. E.g. this

static void attr_rtx            (char *, char *);
static char *attr_string        (char *);

static void
attr_eq (char *name, char *value)
{
  return attr_rtx (attr_string (name), attr_string (value));
}

is not allowed by the standard. However, GCC allows it as an extension.
SDCC also currently allows it as an extension (i.e. when --std-cXX is
not specified).

Is anyone using that extension functionality?

There seem to be some bugs in it, and it might be easier to just
disallow it, as in the standard (i.e. giving an error message even for
--std-sdccXX), rather than tracking down the details of the bugs.

Philipp


_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to