--- /dev/null
+// { dg-do compile }
+
+struct S { void f (void); };
+
+typedef void f1 (void) throw (int); // { dg-error "exception" }
+typedef void (*f2) (void) throw (int); // { dg-error "exception" }
+typedef void (S::*f3) (void) throw (int); // { dg-error "exception" }
+
+void (*f4) (void) throw (int);
+void (S::*f5) (void) throw (int);
--- /dev/null
+// Origin: Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
+
+// { dg-do link }
+
+template <class T>
+class Ptr {
+protected:
+ T * ptr;
+
+public:
+
+ Ptr(void) : ptr(0) { };
+ Ptr(T * p) : ptr(p) { };
+
+ ~Ptr(void) { delete ptr; }
+
+ operator T & () { return *ptr; }
+};
+
+class base {
+public:
+ base(void) { }
+ ~base(void) { }
+};
+
+
+class foo : public base {
+private:
+ foo(const foo & rv);
+
+public:
+
+ foo(void) { }
+ ~foo(void) { }
+};
+
+void func2(base & b) {
+ // ...
+}
+
+int main () {
+ Ptr<foo> f = new foo;
+ /* This should not result in a copy; the result of the conversion
+ operator should be bound directly to the reference argument to
+ `func2'. */
+ func2(f);
+}
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 4 Sept 2001 <nathan@codesourcery.com>
+
+// Bug 4206. We were nesting SCOPE_STMTs badly.
+
+struct A
+{
+ A ();
+ ~A ();
+};
+
+
+void Go( )
+{
+ while (1)
+ {
+ switch (1) {
+ default: {}
+ }
+ A d;
+ }
+
+}
+++ /dev/null
-/* Test __attribute__ ((deprecated)) */
-/* { dg-do compile } */
-/* { dg-options "-Wdeprecated-declarations -fmessage-length=0" } */
-
-#if 1
-typedef int INT1 __attribute__((deprecated));
-typedef INT1 INT2 __attribute__ ((__deprecated__));
-
-typedef INT1 INT1a; /* { dg-warning "`INT1' is deprecated" "" } */
-typedef INT1 INT1b __attribute__ ((deprecated));
-
-INT1 should_be_unavailable; /* { dg-warning "`INT1' is deprecated" "" } */
-INT1a should_not_be_deprecated;
-
-INT1 f1(void) __attribute__ ((deprecated));
-INT1 f2(void) { return 0; } /* { dg-warning "`INT1' is deprecated" "" } */
-
-INT2 f3(void) __attribute__ ((__deprecated__));
-INT2 f4(void) { return 0; } /* { dg-warning "`INT2' is deprecated" "" } */
-int f5(INT2 x); /* { dg-warning "`INT2' is deprecated" "" } */
-int f6(INT2 x) __attribute__ ((__deprecated__));
-
-typedef enum {red, green, blue} Color __attribute__((deprecated));
-
-int g1;
-int g2 __attribute__ ((deprecated));
-int g3 __attribute__ ((__deprecated__));
-Color k; /* { dg-warning "`Color' is deprecated" "" } */
-
-typedef struct {
- int field1;
- int field2 __attribute__ ((deprecated));
- int field3;
- int field4 __attribute__ ((__deprecated__));
- union {
- int field5;
- int field6 __attribute__ ((deprecated));
- } u1;
- int field7:1;
- int field8:1 __attribute__ ((deprecated));
- union {
- int field9;
- int field10;
- } u2 __attribute__ ((deprecated));
-} S1;
-
-int func1()
-{
- INT1 w; /* { dg-warning "`INT1' is deprecated" "" } */
- int x __attribute__ ((deprecated));
- int y __attribute__ ((__deprecated__));
- int z;
- int (*pf)() = f1; /* { dg-warning "`f1' is deprecated" "" } */
-
- z = w + x + y + g1 + g2 + g3; /* { dg-warning "`x' is deprecated" "" } */
- /* { dg-warning "`y' is deprecated" "" { target *-*-* } 55 } */
- /* { dg-warning "`g2' is deprecated" "" { target *-*-* } 55 } */
- /* { dg-warning "`g3' is deprecated" "" { target *-*-* } 55 } */
- return f1(); /* { dg-warning "`f1' is deprecated" "" } */
-}
-
-int func2(S1 *p)
-{
- S1 lp;
-
- if (p->field1)
- return p->field2; /* { dg-warning "`field2' is deprecated" "" } */
- else if (lp.field4) /* { dg-warning "`field4' is deprecated" "" } */
- return p->field3;
-
- p->u1.field5 = g1 + p->field7;
- p->u2.field9; /* { dg-warning "`u2' is deprecated" "" } */
- return p->u1.field6 + p->field8; /* { dg-warning "`field6' is deprecated" "" } */
- /* { dg-warning "`field8' is deprecated" "" { target *-*-* } 73 } */
-}
-
-struct SS1 {
- int x;
- INT1 y; /* { dg-warning "`INT1' is deprecated" "" } */
-} __attribute__ ((deprecated));
-
-struct SS1 *p1; /* { dg-warning "`SS1' is deprecated" "" } */
-
-struct __attribute__ ((__deprecated__)) SS2 {
- int x;
- INT1 y; /* { dg-warning "`INT1' is deprecated" "" } */
-};
-
-struct SS2 *p2; /* { dg-warning "`SS2' is deprecated" "" } */
-#endif
-
-#ifdef __cplusplus
-class T {
- public:
- void member1(int) __attribute__ ((deprecated));
- void member2(INT1) __attribute__ ((__deprecated__)); /* { dg-warning "`INT1' is deprecated" "" } */
- int member3(T *);
- int x;
-} __attribute__ ((deprecated));
-
-T *p3;
-
-inline void T::member1(int) {}
-
-int T::member3(T *p)
-{
- p->member1(1); /* { dg-warning "`member1' is deprecated" "" } */
- (*p).member1(2); /* { dg-warning "`member1' is deprecated" "" } */
- p->member2(1); /* { dg-warning "`member2' is deprecated" "" } */
- (*p).member2(2); /* { dg-warning "`member2' is deprecated" "" } */
- p->member3(p);
- (*p).member3(p);
- return f1(); /* { dg-warning "`f1' is deprecated" "" } */
-}
-#endif
-
-
+++ /dev/null
-// { dg-do compile }
-
-struct S { void f (void); };
-
-typedef void f1 (void) throw (int); // { dg-error "exception" }
-typedef void (*f2) (void) throw (int); // { dg-error "exception" }
-typedef void (S::*f3) (void) throw (int); // { dg-error "exception" }
-
-void (*f4) (void) throw (int);
-void (S::*f5) (void) throw (int);
+++ /dev/null
-// { dg-do compile }
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-// Contributed by Nathan Sidwell 4 Sept 2001 <nathan@codesourcery.com>
-
-// Bug 4206. We were nesting SCOPE_STMTs badly.
-
-struct A
-{
- A ();
- ~A ();
-};
-
-
-void Go( )
-{
- while (1)
- {
- switch (1) {
- default: {}
- }
- A d;
- }
-
-}
+++ /dev/null
-// Origin: Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
-
-// { dg-do link }
-
-template <class T>
-class Ptr {
-protected:
- T * ptr;
-
-public:
-
- Ptr(void) : ptr(0) { };
- Ptr(T * p) : ptr(p) { };
-
- ~Ptr(void) { delete ptr; }
-
- operator T & () { return *ptr; }
-};
-
-class base {
-public:
- base(void) { }
- ~base(void) { }
-};
-
-
-class foo : public base {
-private:
- foo(const foo & rv);
-
-public:
-
- foo(void) { }
- ~foo(void) { }
-};
-
-void func2(base & b) {
- // ...
-}
-
-int main () {
- Ptr<foo> f = new foo;
- /* This should not result in a copy; the result of the conversion
- operator should be bound directly to the reference argument to
- `func2'. */
- func2(f);
-}
+++ /dev/null
-// Test use of `sizeof' as a template parameter.
-// Origin: smacdonald@seimac.com
-
-// { dg-do compile }
-
-template <unsigned I> struct A {};
-
-template <typename SizeType>
-struct B
-{
-char * f() const
-{
-return (A<sizeof(void *)>::value);
-}
-};
--- /dev/null
+// Test use of `sizeof' as a template parameter.
+// Origin: smacdonald@seimac.com
+
+// { dg-do compile }
+
+template <unsigned I> struct A {};
+
+template <typename SizeType>
+struct B
+{
+char * f() const
+{
+return (A<sizeof(void *)>::value);
+}
+};
--- /dev/null
+/* Test __attribute__ ((deprecated)) */
+/* { dg-do compile } */
+/* { dg-options "-Wdeprecated-declarations -fmessage-length=0" } */
+
+#if 1
+typedef int INT1 __attribute__((deprecated));
+typedef INT1 INT2 __attribute__ ((__deprecated__));
+
+typedef INT1 INT1a; /* { dg-warning "`INT1' is deprecated" "" } */
+typedef INT1 INT1b __attribute__ ((deprecated));
+
+INT1 should_be_unavailable; /* { dg-warning "`INT1' is deprecated" "" } */
+INT1a should_not_be_deprecated;
+
+INT1 f1(void) __attribute__ ((deprecated));
+INT1 f2(void) { return 0; } /* { dg-warning "`INT1' is deprecated" "" } */
+
+INT2 f3(void) __attribute__ ((__deprecated__));
+INT2 f4(void) { return 0; } /* { dg-warning "`INT2' is deprecated" "" } */
+int f5(INT2 x); /* { dg-warning "`INT2' is deprecated" "" } */
+int f6(INT2 x) __attribute__ ((__deprecated__));
+
+typedef enum {red, green, blue} Color __attribute__((deprecated));
+
+int g1;
+int g2 __attribute__ ((deprecated));
+int g3 __attribute__ ((__deprecated__));
+Color k; /* { dg-warning "`Color' is deprecated" "" } */
+
+typedef struct {
+ int field1;
+ int field2 __attribute__ ((deprecated));
+ int field3;
+ int field4 __attribute__ ((__deprecated__));
+ union {
+ int field5;
+ int field6 __attribute__ ((deprecated));
+ } u1;
+ int field7:1;
+ int field8:1 __attribute__ ((deprecated));
+ union {
+ int field9;
+ int field10;
+ } u2 __attribute__ ((deprecated));
+} S1;
+
+int func1()
+{
+ INT1 w; /* { dg-warning "`INT1' is deprecated" "" } */
+ int x __attribute__ ((deprecated));
+ int y __attribute__ ((__deprecated__));
+ int z;
+ int (*pf)() = f1; /* { dg-warning "`f1' is deprecated" "" } */
+
+ z = w + x + y + g1 + g2 + g3; /* { dg-warning "`x' is deprecated" "" } */
+ /* { dg-warning "`y' is deprecated" "" { target *-*-* } 55 } */
+ /* { dg-warning "`g2' is deprecated" "" { target *-*-* } 55 } */
+ /* { dg-warning "`g3' is deprecated" "" { target *-*-* } 55 } */
+ return f1(); /* { dg-warning "`f1' is deprecated" "" } */
+}
+
+int func2(S1 *p)
+{
+ S1 lp;
+
+ if (p->field1)
+ return p->field2; /* { dg-warning "`field2' is deprecated" "" } */
+ else if (lp.field4) /* { dg-warning "`field4' is deprecated" "" } */
+ return p->field3;
+
+ p->u1.field5 = g1 + p->field7;
+ p->u2.field9; /* { dg-warning "`u2' is deprecated" "" } */
+ return p->u1.field6 + p->field8; /* { dg-warning "`field6' is deprecated" "" } */
+ /* { dg-warning "`field8' is deprecated" "" { target *-*-* } 73 } */
+}
+
+struct SS1 {
+ int x;
+ INT1 y; /* { dg-warning "`INT1' is deprecated" "" } */
+} __attribute__ ((deprecated));
+
+struct SS1 *p1; /* { dg-warning "`SS1' is deprecated" "" } */
+
+struct __attribute__ ((__deprecated__)) SS2 {
+ int x;
+ INT1 y; /* { dg-warning "`INT1' is deprecated" "" } */
+};
+
+struct SS2 *p2; /* { dg-warning "`SS2' is deprecated" "" } */
+#endif
+
+#ifdef __cplusplus
+class T {
+ public:
+ void member1(int) __attribute__ ((deprecated));
+ void member2(INT1) __attribute__ ((__deprecated__)); /* { dg-warning "`INT1' is deprecated" "" } */
+ int member3(T *);
+ int x;
+} __attribute__ ((deprecated));
+
+T *p3;
+
+inline void T::member1(int) {}
+
+int T::member3(T *p)
+{
+ p->member1(1); /* { dg-warning "`member1' is deprecated" "" } */
+ (*p).member1(2); /* { dg-warning "`member1' is deprecated" "" } */
+ p->member2(1); /* { dg-warning "`member2' is deprecated" "" } */
+ (*p).member2(2); /* { dg-warning "`member2' is deprecated" "" } */
+ p->member3(p);
+ (*p).member3(p);
+ return f1(); /* { dg-warning "`f1' is deprecated" "" } */
+}
+#endif
+
+