1# Nonsensical program used to generate an example DWARF4 and DWARF5 file. 2# The generated code is the same, but the DWARF representation is different. 3 4# = hello.h = 5 6extern int m; 7extern int baz (int x); 8 9static inline int 10frob (int a, int b) 11{ 12 int c = a; 13 14 if (a > b) 15 c -= b; 16 17 return baz (c); 18} 19 20# = hello.c = 21 22#include <stddef.h> 23#include "hello.h" 24 25extern int main (int, char **); 26int m = 2; 27 28wchar_t foo (wchar_t); 29int baz (int x) 30{ 31 int r = x; 32 33 if (x > m) 34 r -= m; 35 36 r = foo (r); 37 return r; 38} 39 40wchar_t 41foo (wchar_t f) 42{ 43 if (f < 0) 44 return main (f, NULL); 45 46 return f > 0 ? frob (f - 1, m) : 0; 47} 48 49# = world.c = 50 51#include "hello.h" 52#include <stdlib.h> 53 54int 55calc (const char *word) 56{ 57 if (word == 0 || word[0] == '\0') 58 return 0; 59 60 return frob (word[0], m + 42); 61} 62 63int 64main (int argc, const char **argv) 65{ 66 const char *n; 67 if (argc > 1) 68 n = argv[0]; 69 else 70 n = "world"; 71 72 exit (calc (n)); 73} 74 75$ gcc -gdwarf-4 -gno-as-loc-support -gno-variable-location-views -O2 -c world.c 76$ gcc -gdwarf-4 -gno-as-loc-support -gno-variable-location-views -O2 -c hello.c 77$ gcc -o testfile-dwarf-4 hello.o world.o 78 79$ gcc -gdwarf-5 -gno-as-loc-support -gno-variable-location-views -O2 -c world.c 80$ gcc -gdwarf-5 -gno-as-loc-support -gno-variable-location-views -O2 -c hello.c 81$ gcc -o testfile-dwarf-5 hello.o world.o 82 83$ gcc -gdwarf-4 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-world4.o -c world.c 84$ gcc -gdwarf-4 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-hello4.o -c hello.c 85$ gcc -o testfile-splitdwarf-4 testfile-hello4.o testfile-world4.o 86 87$ gcc -gdwarf-5 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-world5.o -c world.c 88$ gcc -gdwarf-5 -gsplit-dwarf -gno-as-loc-support -gno-variable-location-views -O2 -o testfile-hello5.o -c hello.c 89$ gcc -o testfile-splitdwarf-5 testfile-hello5.o testfile-world5.o 90