| // PR target/12900 |
| // Origin: <snyder@fnal.gov> |
| |
| // This used to fail on x86 because the reg-stack pass |
| // deleted a valid edge. |
| |
| // { dg-do compile } |
| // { dg-options "-mtune=i586 -O2" { target i?86-*-* } } |
| // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } |
| |
| struct array { |
| double data; |
| virtual ~array(); |
| }; |
| |
| double glob; |
| double ext1(double); |
| int nmuons; |
| |
| void track_match() |
| { |
| array vecdca; |
| if (glob < 10) return; |
| double p = glob*5; |
| double phi = vecdca.data; |
| ext1 (vecdca.data-glob); |
| ext1 (phi*2); |
| if (1 < p) |
| ++nmuons; |
| } |