1/* Test for redefining macros with significant differences.  */
2
3/* { dg-do preprocess }
4   { dg-options "-ansi -Wall" } */
5
6#define mac(a, b) (a) + (b)
7#define mac(a, b) (a) * (b)
8#define mac(a, b) (a) * (x)
9#define mac(a, g) (a) * (x)
10
11#define ro(x) foo x bar
12#define ro(x, b) foo x bar
13
14#define va(a...) a
15#define va(...) __VA_ARGS__
16
17#define foo(x) x
18#define foo(x)x		/* { dg-bogus "redefined" "redefined foo" } */
19
20/* { dg-warning "redefined" "redef mac"     { target *-*-* } 7  }
21   { dg-warning "redefined" "redef mac"     { target *-*-* } 8  }
22   { dg-warning "redefined" "redef mac"     { target *-*-* } 9  }
23   { dg-warning "redefined" "redef ro"      { target *-*-* } 12 }
24   { dg-warning "redefined" "redef va"      { target *-*-* } 15 }
25
26   { dg-message "previous"  "prev def mac"  { target *-*-* } 6  }
27   { dg-message "previous"  "prev def mac"  { target *-*-* } 7  }
28   { dg-message "previous"  "prev def mac"  { target *-*-* } 8  }
29   { dg-message "previous"  "prev def ro"   { target *-*-* } 11 }
30   { dg-message "previous"  "prev def va"   { target *-*-* } 14 }
31*/
32