DebugInfoOptions.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #pragma once
  2. #ifdef __GNUC__
  3. #pragma GCC diagnostic push
  4. #pragma GCC diagnostic ignored "-Wunused-parameter"
  5. #endif
  6. //===--- DebugInfoOptions.h - Debug Info Emission Types ---------*- C++ -*-===//
  7. //
  8. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  9. // See https://llvm.org/LICENSE.txt for license information.
  10. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #ifndef LLVM_CLANG_BASIC_DEBUGINFOOPTIONS_H
  14. #define LLVM_CLANG_BASIC_DEBUGINFOOPTIONS_H
  15. namespace clang {
  16. namespace codegenoptions {
  17. enum DebugInfoFormat {
  18. DIF_DWARF,
  19. DIF_CodeView,
  20. };
  21. enum DebugInfoKind {
  22. /// Don't generate debug info.
  23. NoDebugInfo,
  24. /// Emit location information but do not generate debug info in the output.
  25. /// This is useful in cases where the backend wants to track source
  26. /// locations for instructions without actually emitting debug info for them
  27. /// (e.g., when -Rpass is used).
  28. LocTrackingOnly,
  29. /// Emit only debug directives with the line numbers data
  30. DebugDirectivesOnly,
  31. /// Emit only debug info necessary for generating line number tables
  32. /// (-gline-tables-only).
  33. DebugLineTablesOnly,
  34. /// Limit generated debug info for classes to reduce size. This emits class
  35. /// type info only where the constructor is emitted, if it is a class that
  36. /// has a constructor.
  37. /// FIXME: Consider combining this with LimitedDebugInfo.
  38. DebugInfoConstructor,
  39. /// Limit generated debug info to reduce size (-fno-standalone-debug). This
  40. /// emits forward decls for types that could be replaced with forward decls in
  41. /// the source code. For dynamic C++ classes type info is only emitted into
  42. /// the module that contains the classe's vtable.
  43. LimitedDebugInfo,
  44. /// Generate complete debug info.
  45. FullDebugInfo,
  46. /// Generate debug info for types that may be unused in the source
  47. /// (-fno-eliminate-unused-debug-types).
  48. UnusedTypeInfo,
  49. };
  50. enum class DebugTemplateNamesKind {
  51. Full,
  52. Simple,
  53. Mangled
  54. };
  55. } // end namespace codegenoptions
  56. } // end namespace clang
  57. #endif
  58. #ifdef __GNUC__
  59. #pragma GCC diagnostic pop
  60. #endif