URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
// { dg-do compile }
|
// { dg-do compile }
|
// { dg-options "-Weffc++" }
|
// { dg-options "-Weffc++" }
|
// Contributed by Benjamin Kosnik
|
// Contributed by Benjamin Kosnik
|
// PR c++/16165 and PR c++/8211: Improve item 11 of -Weffc++
|
// PR c++/16165 and PR c++/8211: Improve item 11 of -Weffc++
|
|
|
|
|
// We should not warn for this class since this kind of pointers can
|
// We should not warn for this class since this kind of pointers can
|
// never hold dynamic memory.
|
// never hold dynamic memory.
|
struct A {
|
struct A {
|
void (*func1)(void);
|
void (*func1)(void);
|
void (A::*func2)(void);
|
void (A::*func2)(void);
|
int A::*func3;
|
int A::*func3;
|
|
|
int a;
|
int a;
|
void b(void);
|
void b(void);
|
|
|
A();
|
A();
|
~A();
|
~A();
|
};
|
};
|
|
|
// We do not warn for this class because there is no destructor, so we
|
// We do not warn for this class because there is no destructor, so we
|
// assume there is no dynamic memory allocated (it could point to a
|
// assume there is no dynamic memory allocated (it could point to a
|
// global variable).
|
// global variable).
|
struct B {
|
struct B {
|
int *ptr;
|
int *ptr;
|
B();
|
B();
|
};
|
};
|
|
|
|
|
// We should emit a warning for these
|
// We should emit a warning for these
|
struct C1 { // { dg-warning "" "" }
|
struct C1 { // { dg-warning "" "" }
|
int *ptr;
|
int *ptr;
|
C1();
|
C1();
|
~C1();
|
~C1();
|
};
|
};
|
|
|
struct C2 { // { dg-warning "" "" }
|
struct C2 { // { dg-warning "" "" }
|
int *ptr;
|
int *ptr;
|
C2();
|
C2();
|
C2(const C2&);
|
C2(const C2&);
|
~C2();
|
~C2();
|
};
|
};
|
|
|
struct C3 { // { dg-warning "" "" }
|
struct C3 { // { dg-warning "" "" }
|
int *ptr;
|
int *ptr;
|
C3();
|
C3();
|
~C3();
|
~C3();
|
C3& operator=(const C3&);
|
C3& operator=(const C3&);
|
};
|
};
|
|
|
// But not for this
|
// But not for this
|
struct C4 {
|
struct C4 {
|
int *ptr;
|
int *ptr;
|
C4();
|
C4();
|
C4(const C4&);
|
C4(const C4&);
|
~C4();
|
~C4();
|
C4& operator=(const C4&);
|
C4& operator=(const C4&);
|
};
|
};
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.