diff --git a/skeletons/constraints.h b/skeletons/constraints.h index 255b6ae2cd1dc1892dccd863bcf2a36b9b1340ab..d299e735d1946890ce35ee99ccbb61ba32f35efe 100644 --- a/skeletons/constraints.h +++ b/skeletons/constraints.h @@ -45,13 +45,17 @@ asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ /* * Invoke the callback with a complete error message. */ +#ifdef __GNUC__ #define _ASN_ERRLOG(fmt, args...) do { \ if(app_errlog) \ _asn_i_log_error(app_errlog, \ app_key, fmt, ##args); \ - break; \ - } while(0); -void _asn_i_log_error(asn_app_consume_bytes_f *, void *key, +} while(0); +#else /* Preprocessor does not support variable args macros */ +#define _ASN_ERRLOG if(app_errlog) _asn_i_log_error +#endif + +extern void _asn_i_log_error(asn_app_consume_bytes_f *, void *key, const char *fmt, ...) __attribute__ ((format(printf, 3, 4))); #endif /* _ASN1_CONSTRAINTS_VALIDATOR_H_ */