llvm/clang/test/Driver/mingw-cfguard.c

// RUN: %clang --target=x86_64-w64-windows-gnu -### %s 2>&1 | FileCheck -check-prefixes=NO_CF,DEFAULT %s
// RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=none 2>&1 | FileCheck -check-prefixes=NO_CF,GUARD_NONE %s
// NO_CF: "-cc1"
// NO_CF-NOT: "-cfguard"
// NO_CF-NOT: "-cfguard-no-checks"
// NO_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
// NO_CF-NOT: "--guard-cf"
// DEFAULT-NOT: "--no-guard-cf"
// GUARD_NONE-SAME: "--no-guard-cf"

// RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf 2>&1 | FileCheck -check-prefix=GUARD_CF %s
// GUARD_CF: "-cc1"
// GUARD_CF-SAME: "-cfguard"
// GUARD_CF-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
// GUARD_CF-SAME: "--guard-cf"
// GUARD_CF-NOT: "--no-guard-cf"

// RUN: %clang --target=x86_64-w64-windows-gnu -### %s -mguard=cf-nochecks 2>&1 | FileCheck -check-prefix=GUARD_NOCHECKS %s
// GUARD_NOCHECKS: "-cc1"
// GUARD_NOCHECKS-NOT: "-cfguard"
// GUARD_NOCHECKS-SAME: "-cfguard-no-checks"
// GUARD_NOCHECKS-NOT: "-cfguard"
// GUARD_NOCHECKS-NEXT: ld{{(.lld)?}}{{(.exe)?}}"
// GUARD_NOCHECKS-SAME: "--guard-cf"
// GUARD_NOCHECKS-NOT: "--no-guard-cf"

// RUN: not %clang --target=x86_64-w64-windows-gnu -### %s -mguard=xxx 2>&1 | FileCheck -check-prefix=GUARD_UNKNOWN %s
// GUARD_UNKNOWN: error: unsupported argument 'xxx' to option '-mguard='