Blame tests/testfile-dwarf-45.source

Packit Service 97d2fb
# Nonsensical program used to generate an example DWARF4 and DWARF5 file.
Packit Service 97d2fb
# The generated code is the same, but the DWARF representation is different.
Packit Service 97d2fb
Packit Service 97d2fb
# = hello.h =
Packit Service 97d2fb
Packit Service 97d2fb
extern int m;
Packit Service 97d2fb
extern int baz (int x);
Packit Service 97d2fb
Packit Service 97d2fb
static inline int
Packit Service 97d2fb
frob (int a, int b)
Packit Service 97d2fb
{
Packit Service 97d2fb
  int c = a;
Packit Service 97d2fb
Packit Service 97d2fb
  if (a > b)
Packit Service 97d2fb
    c -= b;
Packit Service 97d2fb
Packit Service 97d2fb
  return baz (c);
Packit Service 97d2fb
}
Packit Service 97d2fb
Packit Service 97d2fb
# = hello.c =
Packit Service 97d2fb
Packit Service 97d2fb
#include <stddef.h>
Packit Service 97d2fb
#include "hello.h"
Packit Service 97d2fb
Packit Service 97d2fb
extern int main (int, char **);
Packit Service 97d2fb
int m = 2;
Packit Service 97d2fb
Packit Service 97d2fb
wchar_t foo (wchar_t);
Packit Service 97d2fb
int baz (int x)
Packit Service 97d2fb
{
Packit Service 97d2fb
  int r = x;
Packit Service 97d2fb
Packit Service 97d2fb
  if (x > m)
Packit Service 97d2fb
    r -= m;
Packit Service 97d2fb
Packit Service 97d2fb
  r = foo (r);
Packit Service 97d2fb
  return r;
Packit Service 97d2fb
}
Packit Service 97d2fb
Packit Service 97d2fb
wchar_t
Packit Service 97d2fb
foo (wchar_t f)
Packit Service 97d2fb
{
Packit Service 97d2fb
  if (f < 0)
Packit Service 97d2fb
    return main (f, NULL);
Packit Service 97d2fb
Packit Service 97d2fb
  return f > 0 ? frob (f - 1, m) : 0;
Packit Service 97d2fb
}
Packit Service 97d2fb
Packit Service 97d2fb
# = world.c =
Packit Service 97d2fb
Packit Service 97d2fb
#include "hello.h"
Packit Service 97d2fb
#include <stdlib.h>
Packit Service 97d2fb
Packit Service 97d2fb
int
Packit Service 97d2fb
calc (const char *word)
Packit Service 97d2fb
{
Packit Service 97d2fb
  if (word == 0 || word[0] == '\0')
Packit Service 97d2fb
    return 0;
Packit Service 97d2fb
Packit Service 97d2fb
  return frob (word[0], m + 42);
Packit Service 97d2fb
}
Packit Service 97d2fb
Packit Service 97d2fb
int
Packit Service 97d2fb
main (int argc, const char **argv)
Packit Service 97d2fb
{
Packit Service 97d2fb
  const char *n;
Packit Service 97d2fb
  if (argc > 1)
Packit Service 97d2fb
    n = argv[0];
Packit Service 97d2fb
  else
Packit Service 97d2fb
    n = "world";
Packit Service 97d2fb
Packit Service 97d2fb
  exit (calc (n));
Packit Service 97d2fb
}
Packit Service 97d2fb
Packit Service 97d2fb
$ gcc -gdwarf-4 -gno-as-loc-support -gno-variable-location-views -O2 -c world.c
Packit Service 97d2fb
$ gcc -gdwarf-4 -gno-as-loc-support -gno-variable-location-views -O2 -c hello.c
Packit Service 97d2fb
$ gcc -o testfile-dwarf-4 hello.o world.o
Packit Service 97d2fb
Packit Service 97d2fb
$ gcc -gdwarf-5 -gno-as-loc-support -gno-variable-location-views -O2 -c world.c
Packit Service 97d2fb
$ gcc -gdwarf-5 -gno-as-loc-support -gno-variable-location-views -O2 -c hello.c
Packit Service 97d2fb
$ gcc -o testfile-dwarf-5 hello.o world.o
Packit Service 97d2fb
Packit Service 97d2fb
$ gcc -gdwarf-4 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-world4.o -c world.c
Packit Service 97d2fb
$ gcc -gdwarf-4 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-hello4.o -c hello.c
Packit Service 97d2fb
$ gcc -o testfile-splitdwarf-4 testfile-hello4.o testfile-world4.o
Packit Service 97d2fb
Packit Service 97d2fb
$ gcc -gdwarf-5 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-world5.o -c world.c
Packit Service 97d2fb
$ gcc -gdwarf-5 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-hello5.o -c hello.c
Packit Service 97d2fb
$ gcc -o testfile-splitdwarf-5 testfile-hello5.o testfile-world5.o