[gnu.gcc.bug] aggregate/preprocessor bug

lewie@RVL2.ECN.PURDUE.EDU (Jeff Lewis) (10/31/89)

On compilation, the indicated line yields the error message:
too many (4) args to macro `ComplexAdd'

typedef struct { double r, i; } complex;

#define ComplexAdd(a, b) \
    ((complex) { a.r + b.r, a.i + b.i })

complex biff;

main()

{

    /* the following line with the extra ()'s works */
    biff = ComplexAdd(((complex) { 1, 2 }), ((complex) { 3, 4}));
    /* the following line yields the error message */
    biff = ComplexAdd((complex) { 1, 2 }, (complex) { 3, 4});
}