aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/opt/reg-stack4.C
blob: 5707a38ca82ef4c01c0e05e8f24eca0aa4c0a9bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 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-*-* x86_64-*-* } && ia32 } } }

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; 
}