24 lines
527 B
C
24 lines
527 B
C
/* Test the self-assignemnt detection plugin. */
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-O" } */
|
|
|
|
struct Bar {
|
|
int b_;
|
|
int c_;
|
|
};
|
|
|
|
int g;
|
|
|
|
int main()
|
|
{
|
|
struct Bar *bar;
|
|
int x = x; /* { dg-warning "assigned to itself" } */
|
|
static int y;
|
|
struct Bar b_array[5];
|
|
|
|
b_array[x+g].b_ = b_array[x+g].b_; /* { dg-warning "self-assignment detected" } */
|
|
g = g; /* { dg-warning "assigned to itself" } */
|
|
y = y; /* { dg-warning "assigned to itself" } */
|
|
bar->b_ = bar->b_; /* { dg-warning "assigned to itself" } */
|
|
}
|