- //===--- Options.h - Option info & table ------------------------*- 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_DRIVER_OPTIONS_H 
- #define LLVM_CLANG_DRIVER_OPTIONS_H 
-   
- namespace llvm { 
- namespace opt { 
- class OptTable; 
- } 
- } 
-   
- namespace clang { 
- namespace driver { 
-   
- namespace options { 
- /// Flags specifically for clang options.  Must not overlap with 
- /// llvm::opt::DriverFlag. 
- enum ClangFlags { 
-   NoXarchOption = (1 << 4), 
-   LinkerInput = (1 << 5), 
-   NoArgumentUnused = (1 << 6), 
-   Unsupported = (1 << 7), 
-   CoreOption = (1 << 8), 
-   CLOption = (1 << 9), 
-   CC1Option = (1 << 10), 
-   CC1AsOption = (1 << 11), 
-   NoDriverOption = (1 << 12), 
-   LinkOption = (1 << 13), 
-   FlangOption = (1 << 14), 
-   FC1Option = (1 << 15), 
-   FlangOnlyOption = (1 << 16), 
-   DXCOption = (1 << 17), 
-   CLDXCOption = (1 << 18), 
-   Ignored = (1 << 19), 
- }; 
-   
- enum ID { 
-     OPT_INVALID = 0, // This is not an option ID. 
- #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM,  \ 
-                HELPTEXT, METAVAR, VALUES)                                      \ 
-   OPT_##ID, 
- #include "clang/Driver/Options.inc" 
-     LastOption 
- #undef OPTION 
-   }; 
- } 
-   
- const llvm::opt::OptTable &getDriverOptTable(); 
- } 
- } 
-   
- #endif 
-