Clang Project

clang_source_code/include/clang/Basic/DebugInfoOptions.h
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
12namespace clang {
13namespace codegenoptions {
14
15enum DebugInfoFormat {
16  DIF_DWARF,
17  DIF_CodeView,
18};
19
20enum 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