You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.9 KiB
89 lines
1.9 KiB
# Nonsensical program used to generate an example DWARF4 and DWARF5 file.
|
|
# The generated code is the same, but the DWARF representation is different.
|
|
|
|
# = hello.h =
|
|
|
|
extern int m;
|
|
extern int baz (int x);
|
|
|
|
static inline int
|
|
frob (int a, int b)
|
|
{
|
|
int c = a;
|
|
|
|
if (a > b)
|
|
c -= b;
|
|
|
|
return baz (c);
|
|
}
|
|
|
|
# = hello.c =
|
|
|
|
#include <stddef.h>
|
|
#include "hello.h"
|
|
|
|
extern int main (int, char **);
|
|
int m = 2;
|
|
|
|
wchar_t foo (wchar_t);
|
|
int baz (int x)
|
|
{
|
|
int r = x;
|
|
|
|
if (x > m)
|
|
r -= m;
|
|
|
|
r = foo (r);
|
|
return r;
|
|
}
|
|
|
|
wchar_t
|
|
foo (wchar_t f)
|
|
{
|
|
if (f < 0)
|
|
return main (f, NULL);
|
|
|
|
return f > 0 ? frob (f - 1, m) : 0;
|
|
}
|
|
|
|
# = world.c =
|
|
|
|
#include "hello.h"
|
|
#include <stdlib.h>
|
|
|
|
int
|
|
calc (const char *word)
|
|
{
|
|
if (word == 0 || word[0] == '\0')
|
|
return 0;
|
|
|
|
return frob (word[0], m + 42);
|
|
}
|
|
|
|
int
|
|
main (int argc, const char **argv)
|
|
{
|
|
const char *n;
|
|
if (argc > 1)
|
|
n = argv[0];
|
|
else
|
|
n = "world";
|
|
|
|
exit (calc (n));
|
|
}
|
|
|
|
$ gcc -gdwarf-4 -gno-as-loc-support -gno-variable-location-views -O2 -c world.c
|
|
$ gcc -gdwarf-4 -gno-as-loc-support -gno-variable-location-views -O2 -c hello.c
|
|
$ gcc -o testfile-dwarf-4 hello.o world.o
|
|
|
|
$ gcc -gdwarf-5 -gno-as-loc-support -gno-variable-location-views -O2 -c world.c
|
|
$ gcc -gdwarf-5 -gno-as-loc-support -gno-variable-location-views -O2 -c hello.c
|
|
$ gcc -o testfile-dwarf-5 hello.o world.o
|
|
|
|
$ gcc -gdwarf-4 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-world4.o -c world.c
|
|
$ gcc -gdwarf-4 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-hello4.o -c hello.c
|
|
$ gcc -o testfile-splitdwarf-4 testfile-hello4.o testfile-world4.o
|
|
|
|
$ gcc -gdwarf-5 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-world5.o -c world.c
|
|
$ gcc -gdwarf-5 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-hello5.o -c hello.c
|
|
$ gcc -o testfile-splitdwarf-5 testfile-hello5.o testfile-world5.o
|
|
|