call-graph.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* Guile-GCC
  2. Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
  3. This file is part of Guile-GCC.
  4. Guile-GCC is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. Guile-GCC is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with Guile-GCC. If not, see <http://www.gnu.org/licenses/>. */
  14. #include <stdlib.h>
  15. #include <stdio.h>
  16. static int
  17. fibo (int x)
  18. {
  19. if (x <= 1)
  20. return x;
  21. else
  22. return fibo (x - 1) + fibo (x - 2);
  23. }
  24. static int
  25. foo (int x)
  26. {
  27. return fibo (x + 1);
  28. }
  29. static int
  30. bar (int x)
  31. {
  32. return foo (x - 1);
  33. }
  34. int
  35. main ()
  36. {
  37. printf ("This programs serves as an example of the call graph \
  38. extraction Guile plug-in.\n");
  39. printf ("fibo (%d) = %d\n", 17, bar (17));
  40. return EXIT_SUCCESS;
  41. }