| 1 | //===--- DebugInfoOptions.h - Debug Info Emission Types ---------*- C++ -*-===// |
|---|---|
| 2 | // |
| 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | |
| 9 | #ifndef LLVM_CLANG_BASIC_DEBUGINFOOPTIONS_H |
| 10 | #define LLVM_CLANG_BASIC_DEBUGINFOOPTIONS_H |
| 11 | |
| 12 | namespace clang { |
| 13 | namespace codegenoptions { |
| 14 | |
| 15 | enum DebugInfoFormat { |
| 16 | DIF_DWARF, |
| 17 | DIF_CodeView, |
| 18 | }; |
| 19 | |
| 20 | enum DebugInfoKind { |
| 21 | NoDebugInfo, /// Don't generate debug info. |
| 22 | LocTrackingOnly, /// Emit location information but do not generate |
| 23 | /// debug info in the output. This is useful in |
| 24 | /// cases where the backend wants to track source |
| 25 | /// locations for instructions without actually |
| 26 | /// emitting debug info for them (e.g., when -Rpass |
| 27 | /// is used). |
| 28 | DebugDirectivesOnly, /// Emit only debug directives with the line numbers data |
| 29 | DebugLineTablesOnly, /// Emit only debug info necessary for generating |
| 30 | /// line number tables (-gline-tables-only). |
| 31 | LimitedDebugInfo, /// Limit generated debug info to reduce size |
| 32 | /// (-fno-standalone-debug). This emits |
| 33 | /// forward decls for types that could be |
| 34 | /// replaced with forward decls in the source |
| 35 | /// code. For dynamic C++ classes type info |
| 36 | /// is only emitted into the module that |
| 37 | /// contains the classe's vtable. |
| 38 | FullDebugInfo /// Generate complete debug info. |
| 39 | }; |
| 40 | |
| 41 | } // end namespace codegenoptions |
| 42 | } // end namespace clang |
| 43 | |
| 44 | #endif |
| 45 |