- //===--- DebugInfoOptions.h - Debug Info Emission Types ---------*- C++ -*-===// 
- // 
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
- // See https://llvm.org/LICENSE.txt for license information. 
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
- // 
- //===----------------------------------------------------------------------===// 
-   
- #ifndef LLVM_CLANG_BASIC_DEBUGINFOOPTIONS_H 
- #define LLVM_CLANG_BASIC_DEBUGINFOOPTIONS_H 
-   
- namespace clang { 
- namespace codegenoptions { 
-   
- enum DebugInfoFormat { 
-   DIF_DWARF, 
-   DIF_CodeView, 
- }; 
-   
- enum DebugInfoKind { 
-   /// Don't generate debug info. 
-   NoDebugInfo, 
-   
-   /// Emit location information but do not generate debug info in the output. 
-   /// This is useful in cases where the backend wants to track source 
-   /// locations for instructions without actually emitting debug info for them 
-   /// (e.g., when -Rpass is used). 
-   LocTrackingOnly, 
-   
-   /// Emit only debug directives with the line numbers data 
-   DebugDirectivesOnly, 
-   
-   /// Emit only debug info necessary for generating line number tables 
-   /// (-gline-tables-only). 
-   DebugLineTablesOnly, 
-   
-   /// Limit generated debug info for classes to reduce size. This emits class 
-   /// type info only where the constructor is emitted, if it is a class that 
-   /// has a constructor. 
-   /// FIXME: Consider combining this with LimitedDebugInfo. 
-   DebugInfoConstructor, 
-   
-   /// Limit generated debug info to reduce size (-fno-standalone-debug). This 
-   /// emits forward decls for types that could be replaced with forward decls in 
-   /// the source code. For dynamic C++ classes type info is only emitted into 
-   /// the module that contains the classe's vtable. 
-   LimitedDebugInfo, 
-   
-   /// Generate complete debug info. 
-   FullDebugInfo, 
-   
-   /// Generate debug info for types that may be unused in the source 
-   /// (-fno-eliminate-unused-debug-types). 
-   UnusedTypeInfo, 
- }; 
-   
- enum class DebugTemplateNamesKind { 
-   Full, 
-   Simple, 
-   Mangled 
- }; 
-   
- } // end namespace codegenoptions 
- } // end namespace clang 
-   
- #endif 
-