Home | History | Annotate | Line # | Download | only in Driver
      1 //===--- Options.h - Option info & table ------------------------*- 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_DRIVER_OPTIONS_H
     10 #define LLVM_CLANG_DRIVER_OPTIONS_H
     11 
     12 namespace llvm {
     13 namespace opt {
     14 class OptTable;
     15 }
     16 }
     17 
     18 namespace clang {
     19 namespace driver {
     20 
     21 namespace options {
     22 /// Flags specifically for clang options.  Must not overlap with
     23 /// llvm::opt::DriverFlag.
     24 enum ClangFlags {
     25   NoXarchOption = (1 << 4),
     26   LinkerInput = (1 << 5),
     27   NoArgumentUnused = (1 << 6),
     28   Unsupported = (1 << 7),
     29   CoreOption = (1 << 8),
     30   CLOption = (1 << 9),
     31   CC1Option = (1 << 10),
     32   CC1AsOption = (1 << 11),
     33   NoDriverOption = (1 << 12),
     34   LinkOption = (1 << 13),
     35   FlangOption = (1 << 14),
     36   FC1Option = (1 << 15),
     37   FlangOnlyOption = (1 << 16),
     38   Ignored = (1 << 17),
     39 };
     40 
     41 enum ID {
     42     OPT_INVALID = 0, // This is not an option ID.
     43 #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM,  \
     44                HELPTEXT, METAVAR, VALUES)                                      \
     45   OPT_##ID,
     46 #include "clang/Driver/Options.inc"
     47     LastOption
     48 #undef OPTION
     49   };
     50 }
     51 
     52 const llvm::opt::OptTable &getDriverOptTable();
     53 }
     54 }
     55 
     56 #endif
     57