Am 01.03.19 um 10:17 schrieb Philipp Klaus Krause:
> 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

For reference: SDCC used to allow it even when --std-cXX was specified
until Maarten implemented the error message for that case in 2013.

The current question is if that error message should be emitted
unconditionally.

Philipp

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to