https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99862

--- Comment #2 from Zhendong Su <zhendong.su at inf dot ethz.ch> ---
[659] % gcctk -O1 -S -o O1.s small.c
[660] % gcctk -O3 -S -o O3.s small.c
[661] % 
[661] % wc O1.s O3.s
  40   86  599 O1.s
  68  138 1047 O3.s
 108  224 1646 total
[662] % 
[662] % grep foo O1.s
[663] % grep foo O3.s
        call    foo
[664] % 
[664] % cat small.c
extern void foo(void);
int a, b, *c;
static void d(int f) {
  if (f)
    foo();
}
static int e(int f) {
  int g[] = {2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2};
  int h[60];
  h[0] = g != c;
  if (b)
    while (a) {
      int *i[1] = {&h[6]};
    }
  return f;
}
static int *j(int *p) { return 0; }
int main () {
  int m = e(0);
  d(m);
  int l[8];
  if (j(l))
    while (1)
      ;
  return 0;
}

Reply via email to