// Generated from compilers/flang.yaml -- DO NOT EDIT
static FLANG_FLAGS: [FlagRule; 129] = [
    FlagRule::new(FlagPattern::Exactly("-iwithprefixbefore", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-fdisable-real-10", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fno-underscoring", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fno-xor-operator", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-ffile-prefix-map"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fdefault-real-8", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fdisable-real-3", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fno-realloc-lhs", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-pass-exit-codes", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-fimplicit-none", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-flinker-output"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-fno-backslash", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fno-automatic", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-funderscoring", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fxor-operator", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-Xpreprocessor", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-nodefaultlibs", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-flarge-sizes", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-frealloc-lhs", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-fno-unsigned", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-dumpbase-ext", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("--target-help", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::Prefix("-fplugin-arg-", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-nostartfiles", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-ffixed-form", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-traditional", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-iwithprefix", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-fbackslash", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-ffree-form", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-module-dir"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--romc-path"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-iplugindir"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-static-pie", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-Xassembler", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Assembling))),
    FlagRule::new(FlagPattern::Exactly("-funsigned", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-trigraphs", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-idirafter", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-imultilib", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-arch_only", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::ExactlyWithEq("-fconvert"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-dumpbase", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("--version", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::Exactly("-isysroot", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("--sysroot"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-nostdlib", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-rdynamic", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-symbolic", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-aux-info", 1), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-dumpdir", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-wrapper", 1), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::ExactlyWithEq("-fplugin"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-include"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-imacros", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-pthread", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-isystem", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-iprefix", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-fuse-ld"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-Xlinker", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-fmodule", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-Xflang", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-iquote", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-nolibc", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-no-pie", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-static", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-shared", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-nocpp", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("--help", 0), ArgumentKind::Other(PassEffect::InfoAndExit)),
    FlagRule::new(FlagPattern::ExactlyWithEq("-specs"), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-undef", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-remap", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithEq("-entry"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-pipe", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-arch", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-ansi", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-save", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-cpp", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-###", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::Exactly("-MMD", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-Wp,", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-pie", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-Wl,", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-Wa,", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Assembling))),
    FlagRule::new(FlagPattern::ExactlyWithEqOrSep("-std"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-tno", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Exactly("-MM", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MG", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MP", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MD", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MF", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MT", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-MQ", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-CC", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Prefix("-no", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-J"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-x", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-c", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Exactly("-S", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Assembling))),
    FlagRule::new(FlagPattern::Exactly("-E", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-o"), ArgumentKind::Output),
    FlagRule::new(FlagPattern::Exactly("-v", 0), ArgumentKind::Other(PassEffect::DriverOption)),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-A"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-D"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-U"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-M", 0), ArgumentKind::Other(PassEffect::StopsAt(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-C", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-P", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::Exactly("-H", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-I"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-L"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-B"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    FlagRule::new(FlagPattern::ExactlyWithGluedOrSep("-l"), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-e", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-r", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-s", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-T", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-u", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Exactly("-z", 1), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
    FlagRule::new(FlagPattern::Prefix("-O", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-g", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-f", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-m", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
    FlagRule::new(FlagPattern::Prefix("-p", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-W", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-d", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-Q", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-X", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("-Y", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("--", 0), ArgumentKind::Other(PassEffect::None)),
    FlagRule::new(FlagPattern::Prefix("@", 0), ArgumentKind::Other(PassEffect::Configures(CompilerPass::Compiling))),
];
static FLANG_IGNORE_EXECUTABLES: [&str; 7] = ["cc1", "cc1plus", "cc1obj", "cc1objplus", "f951", "collect2", "lto1", ];
static FLANG_IGNORE_FLAGS: [&str; 0] = [];
static FLANG_SLASH_PREFIX: bool = false;
static FLANG_ENV_RULES: [EnvRule; 5] = [
    EnvRule::new("CPATH", EnvMapping::Flag { flag: "-I", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("C_INCLUDE_PATH", EnvMapping::Flag { flag: "-isystem", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("CPLUS_INCLUDE_PATH", EnvMapping::Flag { flag: "-isystem", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("OBJC_INCLUDE_PATH", EnvMapping::Flag { flag: "-isystem", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Preprocessing))),
    EnvRule::new("LIBRARY_PATH", EnvMapping::Flag { flag: "-L", separator: EnvSeparator::Path }, ArgumentKind::Other(PassEffect::Configures(CompilerPass::Linking))),
];
