/* 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" } */ | |
} |