diff --git a/lfs.c b/lfs.c index b73138f3..81366945 100644 --- a/lfs.c +++ b/lfs.c @@ -1577,7 +1577,17 @@ typedef struct lfsr_attr { } lfsr_attr_t; #define LFSR_ATTR(_tag, _delta, _cat) \ - ((lfsr_attr_t){_tag, _delta, _cat}) + lfsr_attr(_tag, _delta, _cat) + +static inline lfsr_attr_t lfsr_attr( + lfsr_tag_t tag, lfsr_srid_t delta, lfsr_cat_t cat) { + // don't use a compound literal here, GCC hates it + lfsr_attr_t attr; + attr.tag = tag; + attr.delta = delta; + attr.cat = cat; + return attr; +} #define LFSR_ATTR_NOOP() \ LFSR_ATTR(LFSR_TAG_NULL, 0, LFSR_CAT_NULL())