1 //===--- PreprocessorOutputOptions.h ----------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H
10 #define LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H
14 /// PreprocessorOutputOptions - Options for controlling the C preprocessor
15 /// output (e.g., -E).
16 class PreprocessorOutputOptions {
18 unsigned ShowCPP : 1; ///< Print normal preprocessed output.
19 unsigned ShowComments : 1; ///< Show comments.
20 unsigned ShowLineMarkers : 1; ///< Show \#line markers.
21 unsigned UseLineDirectives : 1; ///< Use \#line instead of GCC-style \# N.
22 unsigned ShowMacroComments : 1; ///< Show comments, even in macros.
23 unsigned ShowMacros : 1; ///< Print macro definitions.
24 unsigned ShowIncludeDirectives : 1; ///< Print includes, imports etc. within preprocessed output.
25 unsigned RewriteIncludes : 1; ///< Preprocess include directives only.
26 unsigned RewriteImports : 1; ///< Include contents of transitively-imported modules.
29 PreprocessorOutputOptions() {
33 UseLineDirectives = 0;
34 ShowMacroComments = 0;
36 ShowIncludeDirectives = 0;
42 } // end namespace clang