/// When -fwrapv (implied by -fno-strict-overflow) is enabled, /// -fsanitize=undefined does not expand to signed-integer-overflow. /// -fsanitize=signed-integer-overflow is unaffected by -fwrapv. // RUN: %clang -### --target=x86_64-linux -fwrapv -fsanitize=signed-integer-overflow %s 2>&1 | FileCheck %s // CHECK: -fsanitize=signed-integer-overflow // CHECK: -fsanitize-recover=signed-integer-overflow // RUN: %clang -### --target=x86_64-linux -fno-strict-overflow -fsanitize=undefined %s 2>&1 | FileCheck %s --check-prefix=EXCLUDE // RUN: %clang -### --target=x86_64-linux -fstrict-overflow -fwrapv -fsanitize=undefined %s 2>&1 | FileCheck %s --check-prefix=EXCLUDE // EXCLUDE: -fsanitize=alignment,array-bounds, // EXCLUDE-NOT: signed-integer-overflow, // EXCLUDE: -fsanitize-recover=alignment,array-bounds, // EXCLUDE-SAME: signed-integer-overflow // RUN: %clang -### --target=x86_64-linux -fwrapv -fsanitize=undefined -fsanitize=signed-integer-overflow %s 2>&1 | FileCheck %s --check-prefix=INCLUDE // RUN: %clang -### --target=x86_64-linux -fno-strict-overflow -fno-sanitize=signed-integer-overflow -fsanitize=undefined -fsanitize=signed-integer-overflow %s 2>&1 | FileCheck %s --check-prefix=INCLUDE // INCLUDE: -fsanitize=alignment,array-bounds, // INCLUDE-SAME: signed-integer-overflow // INCLUDE: -fsanitize-recover=alignment,array-bounds, // INCLUDE-SAME: signed-integer-overflow /// -fsanitize-trap=undefined expands to signed-integer-overflow regardless of -fwrapv. // RUN: %clang -### --target=x86_64-linux -fwrapv -fsanitize=undefined -fsanitize=signed-integer-overflow -fsanitize-trap=undefined %s 2>&1 | FileCheck %s --check-prefix=INCLUDE-TRAP // INCLUDE-TRAP: -fsanitize=alignment,array-bounds, // INCLUDE-TRAP-SAME: signed-integer-overflow // INCLUDE-TRAP: -fsanitize-trap=alignment,array-bounds, // INCLUDE-TRAP-SAME: signed-integer-overflow