view gcc/testsuite/g++.dg/other/error15.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// Test that duplicate function parameters are found in declarations.

extern void g0 (int a, int b);
extern void g1 (int a, float b);

extern void f0 (int a,		// { dg-message "previous" }
                int a);		// { dg-error "redefinition" }
extern void f1 (int a,		// { dg-message "previous" }
                float a);	// { dg-error "conflicting" }
extern void f3 (int a, int b, int c, // { dg-message "previous" }
                int a);		// { dg-error "redefinition" }
extern void f4 (int a, int b, int c, // { dg-message "previous" }
                int a,		     // { dg-error "redefinition" }
                int a);		     // { dg-error "redefinition" }
extern void f5 (int a, int b, int c, int d, int e, int f, int g, int h, // { dg-message "previous" }
                int a,							// { dg-error "redefinition" }
                int i, int j, int k, int l, int m, int n, int o, int p,
                int q, int r, int s, int t, int u, int v, int w, int x, int y,
                int z);

extern void f6 (int a, int, int, int, int, int, int, int, int, int, int, // { dg-message "previous" }
                int a,		// { dg-error "redefinition" }
                int, int, int, int, int, int, int, int, int, int, int,
                float, float, float, float, float, float, float, float,
                int);

extern void f7 (void (*a)(int),	  // { dg-message "previous" }
                void (*a)(int));  // { dg-error "redefinition" }
extern void f8 (float (*a)(int),  // { dg-message "previous" }
                int (*a)(float));  // { dg-error "conflicting" }

extern void f9 (int a,		// { dg-message "previous" }
                int a,		// { dg-error "redefinition" }
                int a);		// { dg-error "redefinition" }

extern void f10 (int a,		// { dg-message "previous" }
                 int b,		// { dg-message "previous" }
                 int c,		// { dg-message "previous" }
                 int c,		// { dg-error "redefinition" }
                 int b,		// { dg-error "redefinition" }
                 int a);	// { dg-error "redefinition" }

class C1 {
 public:
  void C1_g0 (int a, int b);
  void C1_f0 (int a,		// { dg-message "previous" }
              int a);		// { dg-error "redefinition" }
};

template <class T>
class C2 {
 public:
  void C2_g0 (T a, T b);
  void C2_f0 (T a,		// { dg-message "previous" }
              T a);		// { dg-error "redefinition" }
};